C# 什么';这是通过Win表单中的Modal请求用户输入的最简单方法
实现允许输入和返回自定义值的模式(弹出式)C# 什么';这是通过Win表单中的Modal请求用户输入的最简单方法,c#,.net,winforms,C#,.net,Winforms,实现允许输入和返回自定义值的模式(弹出式)MessageBox的最简单方法是什么。在我的例子中,一个字符串 也许我想得太多了,但我想我会问的。我计划创建一个新表单。添加一个标签、一个文本框、两个按钮。将文本框分配给属性,并从我的主表单调用该属性上的ShowDialog() 我是否仍能以这种方式访问属性,还是应该以某种方式返回值 这是一种体面的方式吗?除了将文本框作为属性公开之外,这听起来是一种体面的方式。您应该只需要公开TextBox.Text。关闭表单后,只要表单变量仍在主表单的作用域内,您仍
MessageBox
的最简单方法是什么。在我的例子中,一个字符串
也许我想得太多了,但我想我会问的。我计划创建一个新表单。添加一个标签
、一个文本框
、两个按钮
。将文本框
分配给属性
,并从我的主表单
调用该属性上的ShowDialog()
我是否仍能以这种方式访问属性
,还是应该以某种方式返回值
这是一种体面的方式吗?除了将文本框作为属性公开之外,这听起来是一种体面的方式。您应该只需要公开TextBox.Text。关闭表单后,只要表单变量仍在主表单的作用域内,您仍然可以访问表单的属性 你可以这样做:
frmPrompt frm = new frmPrompt();
if ( frm.ShowDialog() == DialogResult.OK )
{
string result = frm.SomeProperty
}
是的,我确实这样做了,我制作了一个输入表格,里面完全包含了你所说的内容 让我们调用您的属性
InputValue
using (ModalInputForm inputForm = new ModalInputForm()) {
if (inputForm.ShowDialog() == DialogResult.Ok) {
_fieldToUse = inputForm.InputValue;
}
}
不过,您可能需要寻找其他选项。如果可以避免,接口中的模态通常不是最佳解决方案。特别是要求输入单个值的模式对话框,闻起来更像是旧文本模式终端提示/输入对话框处理用户输入方式的残余。@Johannes Rossel:我同意,但我们并不总是设置自己的要求。;)因此,首先要将winforms转换为SQL。你有没有别的选择,我可能会被忽视?我不知道你的应用程序看起来怎么样;所以,不是。但通常这种模态输入对话框是一种有缺陷的交互模型的标志,可能需要更多的思考。Bu是的,如果有要求,可能没有太多的事情要做。这里需要using语句的可能副本来处理表单。是的,表单需要正确处理-将其包含在using语句中或使用frm.DISPLACE()手动处理。我真的认为这对所问的问题并不重要。你必须注意ShowDialog()的返回值。@nobugz这是非常有效的。编辑我的帖子。