0

我有一个带有进度条和取消按钮的表单,该按钮在进程运行时显示。按钮“取消”属性设置为 true,因此按转义键会取消该过程。

但是,由于按钮是表单上唯一能够获得焦点的控件,如果用户在进程运行时不小心按了 Enter(或空格键),它将被取消。

我通过将 KeyPreview 设置为 true (在表单上)然后将 KeyAscii 设置为 0 来阻止空格键工作,但是这种方法似乎不适用于 enter 键,因为按钮单击事件首先触发。

我尝试将按钮的 TabStop 属性设置为“false” - 没有变化。

4

2 回答 2

7

在我看来,Enter 键应该激活取消按钮。还是您要求用户伸出鼠标?为什么?

我建议在用户取消操作后只添加一个确认对话框,这样如果有人不小心按下了 Enter 键,就有机会继续说“不,我不想取消”。

但是作为用户,如果取消按钮具有焦点并且我无法按键盘上的 Enter 键激活它,我会很恼火。

我的 2 美分

于 2008-10-02T06:31:25.370 回答
2

添加一个大小为 1x1、无标题、无边框等的默认按钮。为其创建一个不执行任何操作的处理程序。Escape 键仍然会像现在一样取消。

于 2008-10-02T06:35:32.333 回答