0
我的表單中有大約200個文本框。 按下「Enter」會轉到下一個文本框。 按「向上」會帶你到上面的文本框等... 我知道編碼,但它是200個文本框,所以它會是一個巨大的複製/粘貼量。有沒有什麼簡單的方法,我可以爲所有的200文本框?巨大數量的文本框重複代碼
我的表單中有大約200個文本框。 按下「Enter」會轉到下一個文本框。 按「向上」會帶你到上面的文本框等... 我知道編碼,但它是200個文本框,所以它會是一個巨大的複製/粘貼量。有沒有什麼簡單的方法,我可以爲所有的200文本框?巨大數量的文本框重複代碼
你真的想在一個表單上顯示用戶200個文本框嗎?您至少應該將它們按照邏輯方式歸入容器控制中,例如Panel
。那麼你可以使用OfType
。
你可以添加到您的窗體類的,它使用匿名事件處理程序的構造器:
Dim allTextBoxes = from txt in Me.TextBoxPanel.Controls.OfType(Of TextBox)()
Order by txt.TabIndex
Dim txtList = allTextBoxes.ToList()
For i As Int32 = 0 To txtList.Count - 1
Dim thisTxt = txtList(i)
Dim nextIndex = If(i + 1 >= txtList.Count, 0, i + 1)
Dim prevIndex = If(i - 1 < 0, txtList.Count - 1, i - 1)
Dim nextTxt = txtList(nextIndex)
Dim prevTxt = txtList(prevIndex)
AddHandler thisTxt.KeyDown,
Sub(txt As Object, e As KeyEventArgs)
If e.KeyCode = 38 Then 'up
Me.ActiveControl = prevTxt
ElseIf e.KeyCode = 13 Then 'enter
Me.ActiveControl = nextTxt
End If
End Sub
Next
非常感謝你@Tim !!!那很完美 – Jad
你真的想顯示用戶在單一表單上200個文本框?可憐的用戶 –
是的。它是以表格的形式。也許我可以工作,否則我是初學者。任何幫助,將不勝感激。 – Jad
您可以在運行時創建控件,例如[如何以編程方式將控件添加到VB.NET中的窗體](http://stackoverflow.com/a/11312296/1115360)。但是,像DataGridView這樣的東西可能對你更好。 –