ShowDialog不返回DialogResult

3
我制作了一个显示表单的form2,并添加了返回DialogResult的按钮,但我不知道为什么它不起作用:
Form1:
private void buttonEvent_Click(object sender, EventArgs e)
{
    Form2 form2 = new Form2();
    if (form2.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        labelEvent.Text = hEvent.GetName; //Breakpoint here but it doesn't stops!
}

表格2:
String Name;

public String GetName
{
    get { return Name; }
}

private void button1_Click(object sender, EventArgs e)
{
    button1.DialogResult = DialogResult.OK;
    this.Close();
}

form2.ShowDialog() 这个方法返回的实际值是什么? - Serguei Fedorov
在设计器中设置该属性,就可以完全摆脱事件处理程序。 - SLaks
2个回答

7

我认为你应该使用

private void button1_Click(object sender, EventArgs e)
{
    this.DialogResult = DialogResult.OK;
    this.Close();
}

3
当窗体以对话框形式显示时,您无需使用this.Close();行。更改this.DialogResult值将关闭该窗体。 - LarsTech
1
@LarsTech 如此处所示,这是不正确的。表单只有在调用Close()之后才会隐藏。 - user2962533

1

只需将button1设置为Form对象上的AcceptButton。您不需要编写任何代码。


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