问题描述
我正在 Winforms 中构建一个 Dialog.当您创建它时,它有两个确定和取消按钮,这就是我想要的.在这个对话框中,我还有一个处理其 KeyPress 事件的 TextBox 和一个 Sub(在 VB.NET 中编码).当按下Enter"键时,我需要一些事情发生.
I'm building a Dialog in Winforms. It's got the two OK and Cancel buttons that are there when you create it, which is what I want. In this dialog I also have a TextBox and a Sub (coding in VB.NET) that handles its KeyPress event. I need stuff to happen when the 'Enter' key is pressed.
现在,我已经一次又一次地完成了这样的 KeyPress 处理.但是,这种情况有所不同,因为只要按下Enter"键,对话框就会自动假定您正在按下确定"按钮,返回结果并关闭.在设计器和运行应用程序时的实际表单中,OK 按钮都是突出显示的,这意味着它始终具有某种焦点(因为没有更好的术语).如何禁用对话框的此功能?当我调试我的代码时,按回车键甚至没有到达处理 KeyPress 事件的子程序.它只是关闭对话框并返回结果,因此我无法真正单步执行代码并查看幕后发生的情况.
Now, I've done such KeyPress handling times and times again. This situation, however, is different, because as soon as 'Enter' key is pressed, the dialog automatically assumes you're pressing the 'OK' button, returns a result and closes. In both the Designer and the actual form when running the application, the OK button is highlight, which means is has some kind of a focus (for the lack of a better term) at all times. How can I disable this feature of a dialog? When I debug my code, pressing enter does not even get to the sub handling the KeyPress event. It simply closes the dialog and returns the result, therefore I can't really step through the code and see what happens behind the scenes.
要重申这个问题,我该如何禁用此功能?
To restate the question, how can I disable this functionality?
干杯!= )
推荐答案
这是它应该的工作方式.您应该将表单的 AcceptButton 属性设置为 OK 按钮.它获取粗边框以指示它是默认按钮,其 Click 事件在用户按 Enter 时自动运行.如果您将按钮的 DialogResult 属性设置为 OK,那么它还会自动分配 DialogResult 属性以便对话框关闭.
This is the way it is supposed to work. You should set the form's AcceptButton property to the OK button. It gets the fat border to indicate that it is the default button whose Click event automatically runs when the user presses Enter. If you set the button's DialogResult property to OK then it also assigns the DialogResult property automatically so that the dialog closes.
不要修复它.如果要调试它,请在按钮的 Click 事件处理程序上设置中断.如果您想阻止它关闭,请重置按钮的 DialogResult 属性或将表单的 DialogResult 属性设置回 None.永远不要使用 KeyPressed 事件.
Don't fix it. If you want to debug it then set a break on the button's Click event handler. If you want to prevent it from closing then either reset the button's DialogResult property or set the form's DialogResult property back to None. Never use the KeyPressed event.
这篇关于OK-Cancel Dialog:处理“Enter"键按下的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)