我有一个带有进度条和取消按钮的表单,该按钮在进程运行时显示。按钮“取消”属性设置为true,因此按下escape,取消该过程。
但是,由于按钮是表格中唯一能够获得焦点的控件,如果用户在进程运行时无意中按下enter(或空格键),它将被取消。
我通过将KeyPreview设置为true(在表单上)然后将KeyAscii设置为0来阻止空格键工作,但是当按钮点击事件首先触发时,这种方法似乎不适用于输入键。
我尝试将按钮的TabStop属性设置为“false” - 没有更改。
答案 0 :(得分:7)
在我看来,回车键应激活取消按钮。或者您是否要求用户伸手去拿鼠标?为什么呢?
我建议在用户取消操作后添加一个确认对话框,所以如果有人意外按下回车键,有机会继续说“不,我不想取消”。
但作为用户如果“取消”按钮具有焦点,我会感到恼火,而我无法在键盘上按Enter键激活它。
我的2美分
答案 1 :(得分:2)
添加一个大小为1x1,没有标题,没有边框等的默认按钮。为它做一个什么都不做的处理程序。 Escape键仍然会像现在一样取消。