Я использовал для программирования в VB6 и пытаюсь написать ту же программу в VB 2013. В этой программе я использую массив из 49 кнопок, которые все делают то же самое, когда вы нажимаете на них. Я понял, что нужно сделать функцию щелчка до точки:создать массив существующих кнопок vb 2013
Private Sub Button_Click(sender As Object, e As EventArgs) Handles Button9.Click, Button10.Click, Button11.Click, Button12.Click, Button13.Click, Button16.Click, Button17.Click, Button18.Click, Button19.Click, Button20.Click
...
End Sub
То, что я пытаюсь сделать, это упрощает код вниз, используя массив, так что я могу просто пройти по индексу. Еще один человек задал тот же самый вопрос в 2010 году и лучший ответ был:
Button[] array = { firstButton, secondButton };
Это будет работать, но я хочу что-то с меньшей типизацией. Я также попытался следующие с отказом:
Один
Button[] buttons = this.Controls.OfType<Button>().ToArray();
Два
For i = 1 To 100
Dim btns() As Button = Controls.Find("Button" & i, True)
Dim btn As Button
If btns IsNot Nothing Then
btn = btns(0)
'If buttons Is Nothing Then
' ReDim buttons(0)
'Else
' ReDim Preserve buttons(buttons.Length)
'End If
'buttons(UBound(buttons)) = btn
btn.Text = i - 1 'here you can change whatever you want
End If
Next
Три
Dim buttons() As Button
buttons = Nothing
For Each b As Button In Me.Controls
If buttons Is Nothing Then
ReDim buttons(0)
Else
ReDim Preserve buttons(buttons.Length)
End If
buttons(UBound(buttons)) = b
Next
Я просто не могу заставить его принять существующие кнопки в массив. Я надеюсь, что кто-то может помочь.
Вы должны использовать 'List (Of Button)'. – SLaks
Ни массив, ни список не помогут вам. VB.NET не похож на VB6. Если вы хотите «49 кнопок, которые все делают одно и то же», используйте общий обработчик событий. – Plutonix
Обычный обработчик событий - это то, что я начал делать в самом начале. Верный? –