[.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