带有输入字段的Messagebox

Sun*_*een 62 .net c#

是否可以显示(弹出)一个带有输入字段的消息框,可能是一个文本框?有些人在语言或框架中吗?

ani*_*ine 84

不幸的是C#没有这样的东西,你必须自己制作一个.但是,您可以尝试引用Microsoft.VisualBasic.dll.

然后使用下面的代码.

Microsoft.VisualBasic.Interaction.InputBox("Question?","Title","Default Text");
Run Code Online (Sandbox Code Playgroud)

或者,通过添加一个using指令,允许在代码中使用更短的语法(我个人更喜欢).

using Microsoft.VisualBasic;
...
Interaction.InputBox("Question?","Title","Default Text");
Run Code Online (Sandbox Code Playgroud)

或者你可以做Pranay Rana建议的事情,那就是我也会做的......

  • 升级?如果你不能 - 改变工作.我觉得你,兄弟.我有一次任务.我们坐在那里.感觉就像我们很快就会开始重新发现火和轮子...... (13认同)
  • 我正在使用.net 2和C#2.0.它找不到.dll.有任何想法吗? (2认同)
  • @ardaozkal 确实如此,您确定您已经引用了 Microsoft.VisualBasic? (2认同)

Pra*_*ana 50

您可以通过制作表单并使用ShowDialogBox显示它来实现....

Form.ShowDialog Method - 将表单显示为模式对话框.

例:

public void ShowMyDialogBox()
{
   Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }
   testDialog.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个是因为它不需要使用 VisualBasic 库,并且可以对对话框的形式和外观进行更精细的控制。一个注意事项:确保在对话框的代码隐藏文件中公开文本框(示例中的 TextBox1)的访问权限。 (3认同)
  • 请注意,您必须自己设置DialogResult!见[这个问题](http://stackoverflow.com/q/487920/266535) (2认同)
  • 我不知道添加VisualBasic DLL库是什么问题。毕竟,它是net框架的一部分,所以它已经安装好了,还是我错过了什么? (2认同)