【问题标题】:Messagebox with input field [duplicate]带有输入字段的消息框[重复]
【发布时间】:2012-06-03 14:17:35
【问题描述】:

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

【问题讨论】:

标签: c# .net


【解决方案1】:

您可以参考Microsoft.VisualBasic.dll

然后使用下面的代码。

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

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

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

或者你可以按照 Pranay Rana 的建议去做,我也会这样做......

【讨论】:

  • 我正在使用 .net 2 和 C# 2.0。它找不到 .dll。有什么想法吗?
  • 升级?如果你不能 - 换工作。我对你有感觉,兄弟。我有一次任务。我们坐在 1.something 上。感觉我们很快就会开始重新发现火和轮子……
  • 不适用于 .net 4.5
  • @ardaozkal 确实如此,你确定你引用了 Microsoft.VisualBasic 吗?
  • 我做了,但我意识到我也应该从添加引用按钮的框架选项卡中引用它(在我评论后发现),它现在可以工作了。谢谢。
【解决方案2】:

您可以通过制作表单并使用 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();
}

【讨论】:

  • 我喜欢这个,因为它不需要使用 VisualBasic 库,并且可以更精细地控制对话框的形式和外观。注意:请务必在对话框的代码隐藏文件中公开对文本框(示例中为 TextBox1)的访问。
  • 请注意,您必须自己设置DialogResult!见this question
  • 我真的很喜欢这个解决方案而不是添加整个 Microsoft.VisualBasic.dll 库只是为了使用一个简单的功能。增加了分布大小的权重并且不实用。这应该是答案。
  • 我不知道添加 VisualBasic DLL 库有什么问题。毕竟是net框架的一部分,所以已经安装好了,还是我遗漏了什么?
  • @LeoGurdian 为什么需要分发那个 DLL?它是框架的一部分。
猜你喜欢
  • 2013-01-18
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
相关资源
最近更新 更多