我公司有一个用VB6编写的大型应用程序,由于历史原因,使用Enter键而不是Tab键导航应用程序。我不知道VB6,但我知道他们目前在Form的KeyUp事件中的一个大选择语句中设置每个控件的焦点,如果它是一个EnterKey。现在我们开始转换为.NET,并且必须保持一致,这样用户就不必在某些表单上使用TAB而在其他表单上输入。我想写一个祖先形式,它会自动从一个字段输入到另一个字段而不是标签。一位同事告诉我,在VB6中完成的方式是处理不在CLICK事件上而是在KEYUP事件上的按钮。我需要继续这样做,所以在表单完成后我不会将剩余的KeyUp事件传回VB6。按钮的事件顺序是
我按如下方式创建了表单:
虽然很糟糕,但这实际上似乎有效。我想知道的是,有更好的方法吗?也许某些设置我可以告诉我的应用程序“通过表单输入而不是标签”?我正在使用的事件而不是点击事件是最好的吗?
答案 0 :(得分:2)
现在也许您正在转换时间来推动遵守Windows标准的想法。
直接回答你的问题,上面的机制是一种非常常见的方法,另一种方法是设置表单的键预览属性并直接在表单中处理它。这两种方式都不是一个特别好的解决方案,因为窗口导航根本不是那样做的,
答案 1 :(得分:1)
更好的实现是使用Form的AcceptButton属性,将其设置为表单上某处的隐藏按钮。然后,当用户按下enter键时,单击该按钮,然后在按钮点击事件中,您执行代码以移动到下一个控件。要选择下一个控件,您只需选择项目列表即可。
最简单的方法是创建一个基本表单,然后在其中包含按钮和AcceptButton逻辑。