带有输入框的消息框

81

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


请查看此链接:http://social.msdn.microsoft.com/Forums/en-SG/winforms/thread/191ddf61-3ae5-4845-b852-56bb9b77238a - Adam
1
以下是两个编程示例,一个基本示例,另一个带有输入验证:
  1. 基本示例 - http://www.csharp-examples.net/inputbox/
  2. 验证示例 - http://www.csharp-examples.net/inputbox-class/
- CodeMonkey
2个回答

109

您可以引用Microsoft.VisualBasic.dll

然后使用以下代码。

Microsoft.VisualBasic.Interaction.InputBox("Question?","Title","Default Text");

另一种方法是通过添加一个 using 指令在代码中使用更短的语法(我个人比较喜欢这种方法)。

using Microsoft.VisualBasic;
...
Interaction.InputBox("Question?","Title","Default Text");

或者你可以像Pranay Rana建议的那样做,那是我也会这样做的...


2
我正在使用 .net 2 和 C# 2.0。它找不到 .dll 文件。有任何想法吗? - Sunscreen
13
升职?如果不能-换工作。我为你感到难过,兄弟。我曾经有过一个任务。我们一直停滞不前。感觉我们很快就会重新发现火和轮子... - Konrad Viltersten
1
不支持 .net 4.5 - ave
3
@ardaozkal,它确实会生效,您确定已经引用了Microsoft.VisualBasic吗? - animaonline
1
我已经做了,但是我意识到我还应该从“添加引用”按钮的框架选项卡中引用它(在我发表评论后发现了这一点),现在它可以工作了。谢谢。 - ave
1
@ardaozkal 很高兴我能帮到你! :) - animaonline

67
你可以通过创建一个表单并使用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();
}

3
我喜欢这个方法,因为它不需要使用VisualBasic库,并且可以更细致地控制对话框的形式和外观。请注意:确保在对话框的代码后台文件中将文本框(例如TextBox1)的访问权限设为public。 - Steve Ferguson
3
请注意,您需要自己设置DialogResult!请参阅此问题:https://dev59.com/rXRB5IYBdhLWcg3w2613 - styfle
我真的很喜欢这个方案,相比于添加整个Microsoft.VisualBasic.dll库只是为了使用一个简单的函数。这会增加分发大小,不切实际。这应该是答案。 - Leo Gurdian
4
我不知道为什么添加VisualBasic DLL库会出问题。毕竟它是.NET框架的一部分,所以应该已经安装了,或者我错过了什么? - magallanes
@LeoGurdian 你为什么需要分发那个 DLL?它是框架的一部分。 - StayOnTarget
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接