onclosing表单返回值

时间:2010-05-27 16:14:12

标签: .net vb.net

表单是否有返回值的方法?类似......

sub main() 

   Dim task as new TaskForm()
   dim res as integer=0
   res = task.opendialog()

end sub

2 个答案:

答案 0 :(得分:1)

这取决于您想要返回的内容。如果要显示一个对话框并确定用于关闭它的按钮(确定,取消,...),您可以使用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 "";
    }
}

答案 1 :(得分:1)

如果您使用ShowDialog,则可以将表单的DialogResult属性设置为值。请注意,表单不能以这种方式返回任意结果,只能返回DialogResult enumeration

的值

否则,您必须设置表单的Tag属性,并在表单关闭后手动检索它,但在您放弃对它的引用之前。