【问题标题】:ShowDialog doesn't return DialogResultShowDialog 不返回 DialogResult
【发布时间】:2013-11-01 18:43:15
【问题描述】:

我制作了一个 form2 显示并且有返回 DialogResult 的按钮,但我不知道为什么这不起作用:

表格1:

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() 返回的实际值是多少?
  • 在设计器中设置属性,就可以完全摆脱事件处理器了。

标签: c# winforms


【解决方案1】:

我认为你应该使用

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

【讨论】:

  • 当表单显示为对话框时,您不需要this.Close(); 行。更改 this.DialogResult 值将关闭表单。
  • @LarsTech 可以看出here,这不是真的。只有在调用 Close() 之前,表单才会隐藏。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 2016-04-22
    • 2010-09-19
    • 1970-01-01
    相关资源
    最近更新 更多