如何让代码等待至form上的OK按钮被点击后再继续执行
解决方案
你当前使用的Show()是无模式窗体调用方法,执行后会立即返回,不会阻塞后续代码运行。要实现等待用户操作后再继续执行,直接替换为模态窗体调用方法ShowDialog()即可:
DialogResult operResult = templateForm.ShowDialog();
补充说明
ShowDialog()会阻塞当前调用线程,直到窗体被用户关闭才会返回操作结果- 你可以通过返回的枚举值判断用户操作,再执行对应逻辑:
if (operResult == DialogResult.OK) { // 用户点击了OK按钮,此处可读取窗体上的用户输入内容,执行后续业务逻辑 } else { // 用户点击了取消/直接关闭了窗体,执行分支逻辑 } - 提前对Form做两个配置即可正常使用:
- 把窗体中OK按钮的
DialogResult属性设置为DialogResult.OK,可选将窗体的AcceptButton属性绑定为该OK按钮,实现按回车键触发OK操作 - 如果有取消按钮,将其
DialogResult属性设置为DialogResult.Cancel,可选将窗体的CancelButton属性绑定为该取消按钮,实现按ESC触发取消操作
- 把窗体中OK按钮的
内容的提问来源于stack exchange,提问作者lonnebol
相关产品推荐
相关产品推荐

