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上找不到类似的帖子.
我错过了什么导致了不同的行为?
AcceptButton属性只是选择按Enter键时将实现默认操作的按钮.在UI中清晰可见,按钮周围有重边框.但这还不够,你仍然需要实现默认操作.
一种简单的方法是在设计器中设置按钮的DialogResult属性.哪个好,但是当你的事件处理程序执行类似验证对话框内容的事情时,往往会引起意外,当你不开心时,你必须将表单的DialogResult属性设置回None.我个人更喜欢始终在Click事件处理程序中显式设置表单的DialogResult.这是可调试的代码,让我看看为什么它"不起作用".