[.NET] 改变焦点问题

楼主: OOQOO (哥只是传说)   2013-12-11 17:52:52
请输入专案类型(网站专案或者应用程式专案): Windows form (用VS2012 EXPRESS版)
我想让每个textbox只要按下Enter就会把焦点focus到button1上
focus过去后再按一次Enter才是触发button1_Click事件
估狗大神只查到针对一个textbox新增KeyPress事件
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
If e.KeyChar = Chr(13) Then
Button1.Focus()
End If
End Sub
但是我如果有50几个textbox都要同时有这个功能的话
是只能在Handles后面接上 ",TextBox2.KeyPress,TextBox3.KeyPress,..."这种方式吗?
还是有比较简单的写法能包在同一个sub中呢?
麻烦各位了 <_ _>
作者: MOONRAKER (㊣牛鹤鳗毛人)   2013-02-12 11:07:00
你可以在form1_load中对用到的textbox用addhandler逐个指定事件处理例程。但是除非你是对所有textbox都这样没有例外可以用find()找出来,不然你还是需要用一个阵列列举这五十几个textbox,写起来并不会比较短。
楼主: OOQOO (哥只是传说)   2013-02-12 16:57:00
大概了解了 感谢
作者: ClubT (小喬)   2013-02-13 11:55:00
.NET没有阵列物件??
作者: MOONRAKER (㊣牛鹤鳗毛人)   2013-02-14 04:31:00
没有text(k)这种命名就是阵列的物件,所以要用一个阵列包所有用到的物件。
作者: ClubT (小喬)   2013-02-18 10:19:00
原来如此...
作者: MOONRAKER (㊣牛鹤鳗毛人)   2013-02-18 11:27:00
以前刚发现很不习惯,不过我也没写过这么多物件共用一个handler的,顶多三四个。而且controls.find()还是要指定完整ID,并不是广泛的find。底下这页有几种列举方法。http://goo.gl/XFXCqQ

Links booklink

Contact Us: admin [ a t ] ucptt.com