2013-11-12 5 views
0

У меня есть вопрос о VB.net. В этом коде есть создание 64 кнопок (по циклу). Как я могу получить доступ к кнопке, по методу Klik и сделан в zetnieuw, по ее координатам? Потому что, в основном zetnieuw функция просто сделать кнопки.Доступ к кнопке VB.Net

Public Class Form1 
Dim AANTAL_KOLOMMEN As Integer = 8 
Dim AANTAL_RIJEN As Integer = 8 
Dim Button1 As Button 
Dim tel As Boolean 
Dim value1 As Integer 
Dim value2 As Integer 




Public Function zetNieuw(rij As Integer, kolom As Integer) As Button 
    Dim nieuweKnop As New Button() 
    nieuweKnop.Width = 40 
    Me.Controls.Add(nieuweKnop) 
    nieuweKnop.Left = kolom * nieuweKnop.Width 
    nieuweKnop.Top = rij * nieuweKnop.Width 
    nieuweKnop.Height = nieuweKnop.Width 
    nieuweKnop.Text = "" 
    AddHandler nieuweKnop.MouseDown, AddressOf Klik 
    ... 
    nieuweKnop.Tag = (kolom + (rij * AANTAL_KOLOMMEN)) 
    Return nieuweKnop 


End Function 


Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    For Me.value1 = 1 To AANTAL_KOLOMMEN Step 1 
     For Me.value2 = 1 To AANTAL_RIJEN Step 1 
      Me.zetNieuw(value2, value1) 
     Next 
    Next 
End Sub 
Private Sub Klik(sender As Object, e As MouseEventArgs) 
    Dim knop As Button = sender 
    ... 
End Sub 
+0

Я не уверен, о чем вы просите. Вы хотите получить доступ к кнопке в обработчике событий klik (thats ловит событие click)? –

+1

Не уверен, что вы подразумеваете под доступом, кнопка, на которую была нажата кнопка, является отправителем, который вы вставляете в переменную knop, координаты присутствуют там, если вы хотите сказать myButtons (x) (y) и вернуть свою кнопку, вам нужно будет создать массив и поместить в него. –

+0

Я попытался создать массив, но получил ошибку nullreferenceexception. Я хочу получить доступ к кнопке, которую я сделал в zetnieuw, в обработчике событий click, да. – user2975965

ответ

0

Что-то, как это должно работать, объявить массив как этот

Dim myButtons(AANTAL_KOLOMMEN - 1, AANTAL_RIJEN - 1) As Button 

заполнить его, как это следует помнить, что массивы с нуля в .Net:

For Me.value1 = 0 To AANTAL_KOLOMMEN - 1 Step 1 
    For Me.value2 = 0 To AANTAL_RIJEN - 1 Step 1 
     myButtons(value2, value1) = Me.zetNieuw(value2, value1) 
    Next 
Next 
+0

Ty! Попробуй, когда я дома. – user2975965

+0

Спасибо! Это помогло :) – user2975965

+0

Добро пожаловать, рад помочь. –

0

При создании кнопки в zetNieuw, можно задать имя свойства кнопки на значение, которое содержит строку и столбец, например,

nieuweKnop.Name = "btn_" & rij & "_" & kolom 

Вы можете использовать имя кнопки для find определенную кнопку строки и столбца позже, если следовать той же конвенции. Кроме того, вы можете определить строку и столбец в свойстве Name, если у вас есть определенная кнопка.

Dim parts = btn.Name.Split("_"C) 
Dim row = Integer.Parse(parts(1)) 
Dim col = Integer.Parse(parts(2)) 

Если только о дальнейшем (получение строки и столбца, основанного на объекте кнопки), анализировать свойство Tag, что вы уже установленное в zetNieuw.

Смежные вопросы