AcceptButton不会关闭表单

Jef*_*f B 2 c# acceptbutton winforms

我有两个非常相似的表单,但在其中一个AcceptButton表单中单击关闭表单,而在另一个表单中它不会关闭表单.他们两个都有自己的AcceptButton设定btnAccept.

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

它们都以这种方式打开:

using(var form = new SomeDialog(dependency))
{
    form.StartPosition = FormStartPosition.CenterParent;
    form.ShowDialog(this);
}
Run Code Online (Sandbox Code Playgroud)

它们都沿着这些线处理"接受"按钮.

private void btnAccept_Click(object sender, EventArgs e)
{
  _dependency.DoSomething(userInput);
}
Run Code Online (Sandbox Code Playgroud)

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

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

Han*_*ant 5

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

一种简单的方法是在设计器中设置按钮的DialogResult属性.哪个好,但是当你的事件处理程序执行类似验证对话框内容的事情时,往往会引起意外,当你不开心时,你必须将表单的DialogResult属性设置回None.我个人更喜欢始终在Click事件处理程序中显式设置表单的DialogResult.这是可调试的代码,让我看看为什么它"不起作用".