即使在vb6中也防止Enter键触发按钮单击
时间:2020-03-06 15:00:43 来源:igfitidea点击:
我有一个带有进度条和一个取消按钮的表单,该表单在进程运行时显示。按钮的"取消"(Cancel)属性设置为true,因此按Escape键可取消该过程。
但是,由于该按钮是表单上唯一可以获取焦点的控件,因此如果用户在过程运行时无意中按Enter(或者空格键),它将被取消。
我通过将KeyPreview设置为true(在窗体上)然后将KeyAscii设置为0来防止空格键起作用,但是这种方法似乎对Enter键无效,因为首先触发了按钮单击事件。
我尝试将按钮的TabStop属性设置为" false",不做任何更改。
解决方案
我认为,Enter键应激活"取消"按钮。还是我们要求用户伸出鼠标?为什么?
我建议在用户取消操作之后只添加一个确认对话框,因此,如果有人不小心按下Enter键,则有机会继续说"不,我不想取消"。
但是作为用户,如果"取消"按钮具有焦点,而按键盘上的Enter键却无法激活它,我会很生气。
我的2美分
添加一个大小为1x1,无标题,无边框等的默认按钮。为其创建一个不执行任何操作的处理程序。退出键仍会像现在一样取消。