感谢您使用微软产品。.NET中没有提供象VB那样的InputBox,但是您可以写一段很简单的代码来实现类似的功能。下面是microsoft.public.dotnet.languages.csharp讨论组中的一个例子,您可以通过调用InputBox.ShowInputBox方法来显示这个InputBox并获取结果:public class InputBox : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox1;
private System.ComponentModel.Container components = null; private InputBox()
{
InitializeComponent();
} protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(16, 16);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(256, 20);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "textBox1";
this.textBox1.KeyDown += new
System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
//
// InputBox
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 53);
this.ControlBox = false;
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.textBox1});
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Name = "InputBox";
this.Text = "InputBox";
this.ResumeLayout(false); } private void textBox1_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
this.Close();
} public static string ShowInputBox()
{
InputBox box = new InputBox();
box.ShowDialog();
return box.textBox1.Text;
}
}希望能对您有所帮助!
======================
- 微软全球技术中心本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
======================
{
private System.Windows.Forms.TextBox textBox1;
private System.ComponentModel.Container components = null; private InputBox()
{
InitializeComponent();
} protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
} private void InitializeComponent()
{
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(16, 16);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(256, 20);
this.textBox1.TabIndex = 0;
this.textBox1.Text = "textBox1";
this.textBox1.KeyDown += new
System.Windows.Forms.KeyEventHandler(this.textBox1_KeyDown);
//
// InputBox
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(292, 53);
this.ControlBox = false;
this.Controls.AddRange(new System.Windows.Forms.Control[] {
this.textBox1});
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Name = "InputBox";
this.Text = "InputBox";
this.ResumeLayout(false); } private void textBox1_KeyDown(object sender,
System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyCode == Keys.Enter)
this.Close();
} public static string ShowInputBox()
{
InputBox box = new InputBox();
box.ShowDialog();
return box.textBox1.Text;
}
}希望能对您有所帮助!
======================
- 微软全球技术中心本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
======================
解决方案 »
- C#如何模拟登陆?
- C#通过PC登陆QQ,如何拉取QQ群号和好友Q号?
- 如何判断datagrideview的列绑定的字段的类型
- web程序中客户端提示更新成功,但是数据库没有更新
- 【】 在启动HttpWebRequest使用时 : 如何转为异步处理呢??
- .Net 里面WebBrowser控件屏蔽快捷键问题如何解决?
- VS2003 中 怎么按逗号分隔字符串
- VS2005报表格式的小问题
- c# webBrowser KindEditor html编辑器 各种报错
- c# 能否读取由c++建立的内存映射文件
- Oracle数据库中的汉字读出来后是乱码。
- 问个愚蠢的问题,c#不就是vc的升级语言吗,怎么还有vc.net?
.NET中的InputBox是一个被很多次问到的问题。的确,C#中没有类似System.Windows.Forms.MessageBox.Show()的InputBox.Show()函数和类。
作为一个workaround,您可以使用Visual Basic.NET runtime中的InputBox函数。下面是例子代码:
string result= " ";
Microsoft.VisualBasic.Interaction.InputBox( "type your name ", "input ",result,0,0);
其实,正像上面给出的例子代码,自己开发一个InputBox可能只需要半个到一个小时或者更少的时间。如果您和您的团队正在从事项目开发或需要长期使用WinForm编程,完全可以从System.Windows.Forms.Form继承一个InputBox类。
- 微软全球技术中心 VC技术支持
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
你好!
我写了一个新的类库,编译后我在程序中这样调用:
{
label1.Text=InputBox.inputBox.showInputBox();
}
当这个事件一触发,弹出一个空白的窗体(类库上我在窗体上放了一个textBox,这时候怎么没有啦???),
当你关闭它后,调试器出现报错:
未将对象引用设置到对象的实例。 并指向:return box.textBox1.Text; 这一句,请教是怎么回事?