AcceptButton不会关闭表单

时间:2015-08-20 22:19:18

标签: c# winforms acceptbutton

我有两个非常相似的表单,但是在其中一个表单中单击AcceptButton会关闭表单,而在另一个表单中它不会关闭表单。他们都将AcceptButton设置为btnAccept

我最近创建了第二个,第一个已经存在了一段时间并由其他人创建。

他们都以这种方式打开:

using(var form = new SomeDialog(dependency))
{
    form.StartPosition = FormStartPosition.CenterParent;
    form.ShowDialog(this);
}

他们都按照这些行处理接受按钮。

private void btnAccept_Click(object sender, EventArgs e)
{
  _dependency.DoSomething(userInput);
}

发布我的整个设计器文件可能没有帮助。是否有特别的东西可以帮助展示它?我在StackOverflow上找不到类似的帖子。

我错过了什么导致了不同的行为?

1 个答案:

答案 0 :(得分:5)

AcceptButton属性只选择按Enter键时将实现默认操作的按钮。在UI中清晰可见,按钮周围有重边框。但这还不够,您仍然必须实施默认操作。

一种简单的方法是在设计器中设置按钮的DialogResult属性。哪个没关系,但是当您的事件处理程序执行诸如验证对话框内容之类的操作时,往往会引起意外,当您不满意时,您必须将表单的DialogResult属性设置回None。我个人更喜欢始终在Click事件处理程序中显式设置表单的DialogResult。这个可调试的代码,让我明白为什么它不起作用"。