[.NET] 改變焦點問題

看板Visual_Basic作者 (哥只是傳說)時間11年前 (2013/12/11 17:52), 編輯推噓1(1012)
留言13則, 3人參與, 最新討論串1/1
請輸入專案類型(網站專案或者應用程式專案): 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中呢? 麻煩各位了 <_ _> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.250.90.79

12/12 11:07, , 1F
你可以在form1_load中對用到的textbox用addhandler逐個
12/12 11:07, 1F

12/12 11:09, , 2F
指定事件處理常式。但是除非你是對所有textbox都這樣沒
12/12 11:09, 2F

12/12 11:09, , 3F
有例外可以用find()找出來,不然你還是需要用一個陣列
12/12 11:09, 3F

12/12 11:10, , 4F
列舉這五十幾個textbox,寫起來並不會比較短。
12/12 11:10, 4F

12/12 16:57, , 5F
大概了解了 感謝
12/12 16:57, 5F

12/13 11:55, , 6F
.NET沒有陣列物件??
12/13 11:55, 6F

12/14 04:31, , 7F
沒有text(k)這種命名就是陣列的物件,所以要用一個陣列
12/14 04:31, 7F

12/14 04:31, , 8F
包所有用到的物件。
12/14 04:31, 8F

12/18 10:19, , 9F
原來如此...
12/18 10:19, 9F

12/18 11:27, , 10F
以前剛發現很不習慣,不過我也沒寫過這麼多物件共用一個
12/18 11:27, 10F

12/18 11:33, , 11F
handler的,頂多三四個。而且controls.find()還是要指定
12/18 11:33, 11F

12/18 11:36, , 12F
完整ID,並不是廣泛的find。底下這頁有幾種列舉方法。
12/18 11:36, 12F

12/18 11:36, , 13F
12/18 11:36, 13F
文章代碼(AID): #1Ig3NtAs (Visual_Basic)
文章代碼(AID): #1Ig3NtAs (Visual_Basic)