感谢您使用微软产品。.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))。
======================

解决方案 »

  1.   

    To  AiQun, 补充一下:  
     
    .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))。  
      

  2.   

    http://expert.csdn.net/Expert/topic/868/868901.xml?temp=.2318994
    你好!
        我写了一个新的类库,编译后我在程序中这样调用:
    {
    label1.Text=InputBox.inputBox.showInputBox();
    }
    当这个事件一触发,弹出一个空白的窗体(类库上我在窗体上放了一个textBox,这时候怎么没有啦???),
    当你关闭它后,调试器出现报错:
    未将对象引用设置到对象的实例。  并指向:return box.textBox1.Text;  这一句,请教是怎么回事?