用户按ENTER键时更改活动控件

时间:2011-03-02 05:13:13

标签: vb.net

我正在vb.net上进行最后一年的数据输入项目 我想让项目更加用户友好 我通过按“Enter”(ASCII 13)使用代码来改变控制焦点。 按“Esc”(ASCII 27)清除当前控制的内容...... 在我的项目中,一个表单至少包含300个控件(t1,t2,t3,t4 ......)

所以在t1的按键事件中我写了

if asc(e.keychar)=13 then
     t2.focus
elseif asc(e.keychar)=27 then
     t1.text=nothing
end if

代码工作正常,但按ENTER键时会发出警报声 改变主动控制...... 请帮我删除哔哔警报..

由于100个控件需要lo

3 个答案:

答案 0 :(得分:2)

KeyPressEventArgs.Handled = TRUE;

所以很可能

e.Handled=true;

还考虑执行e.KeyCode = Keys.Return而不是asc(e.keychar)

答案 1 :(得分:0)

当用户按 Enter 时,我不认为前进到下一个控件是个好主意。

这些是Microsoft的用户体验指南中要注意的一些要点:

  
      
  • Tab键和制表位。 Tab键是在窗口内导航的主要机制。 Tab键仅访问具有制表位的那些控件。所有交互式控件都应该有制表位(除非它们在一个组中),而非交互式控件(如标签)则不应该。
  •   
  • Tab键顺序。所有带制表位的控件都按Tab键顺序访问。按Tab键将输入焦点按Tab键顺序移动到下一个控件,而按Shift + Tab键将输入焦点移动到上一个控件。
  •   
  • 空格键,Enter键和Esc键。空格键使用输入焦点激活控件,而Enter键激活默认按钮。按Esc键取消或关闭窗口。
  •   

任何不熟悉计算机的人都可以按 Tab 进入下一个控件,然后按 Enter 选择默认按钮或当前选择的按钮。< / p>

使用Enter键导航表单上的控件会使您的项目成为很多人的首选。

我建议您按照用户导航控件并停止处理回车键的方式在应用程序上设置Tab键顺序。

有关键盘输入的普遍接受的规则,请参阅Keyboard Section of the Windows User Experience Interaction Guidelines

答案 2 :(得分:0)

我有这样的问题,我用“e.SuppressKeyPress = True”命令来解决它......

if asc(e.keychar)=13 then
e.SuppressKeyPress = True 'Use this command where you don't want that sounds
     t2.focus
elseif asc(e.keychar)=27 then
     t1.text=nothing
end if