有没有办法让窗体返回一个值?像...关闭窗体返回值
sub main()
Dim task as new TaskForm()
dim res as integer=0
res = task.opendialog()
end sub
有没有办法让窗体返回一个值?像...关闭窗体返回值
sub main()
Dim task as new TaskForm()
dim res as integer=0
res = task.opendialog()
end sub
如果使用ShowDialog
,您可以设置窗体的DialogResult
prope rty值。请记住,表单不能以此方式返回任意结果,只能使用DialogResult
enumeration的值。
否则,您必须设置窗体的Tag
属性,并在窗体关闭后,但在放弃对其的引用之前手动检索它。
这取决于你想要返回什么。如果你想显示一个对话框,并弄清楚,用于关闭它哪个按钮(确定,取消,......),你可以使用ShowDialog
方法,它返回一个值DialogResult
显示形式:
DialogResult result = theForm.ShowDialog();
if (result == DialogResult.OK)
{
// OK was clicked
}
如果您想返回其他值,最简单的方法是通过表单上的属性公开这个值,或者在表单中提供一个静态方法来创建它的一个实例,收集所需的输入并返回数据:
class NameInputForm : Form
{
// form initialization/construction left out for brevity, but let's assume
// it contains a TextBox control called UserNameTextBox and a button with
// its DialogResult property set to OK
public static string GetNameFromUser()
{
using (NameInputForm form = new NameInputForm())
{
if (form.ShowDialog() == DialogResult.OK)
{
return form.UserNameTextBox.Text;
}
}
return "";
}
}