Andy74 Poziom 18

Joined: 08 Jan 2003 Posts: 473 Location: U3pjemVyY293
|
#1
18 Mar 2008 19:37 [VB.NET 2008] Jak zastąpić Control Array z VB6? |
|
|
|
Witam.
Jestem początkujący w programowaniu VB.NET, ale uczę się i napotkałem na problem którego nie umiem rozwiązać.
Programowałem trochę w Visual Basic 6 i tam, jak wiadomo, jest taka bardzo wygodna (przynajmniej dla mnie) funkcja tworzenia tablicy kontrolek, do której poszczególnych elementów można się odwoływać za pomocą indeksu. W VB.NET (nie rozumiem dlaczego - moim zdaniem to krok wstecz...) z tej funkcji zrezygnowano.
Ale do rzeczy:
Mam na formie Form1 24 TextBox'y o nazwach TextBox00, TextBox01,..., TextBox23 ułożone w cztery kolumny i sześć wierszy, oraz dwuwymiarową tablicę zmiennych typu String TextData(3, 5).
Wiem już na podstawie przykładów z Sieci jak utworzyć jedną obsługę zdarzenia np. Click dla wszystkich TextBox'ów i rozpoznać w niej który ją wywołał. Robię to przykładowo tak:
| Code: |
Private Sub MixedTextBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles TextBox00.Click, TextBox01.Click, TextBox02.Click '...
Select Case sender.Name
Case "TextBox00"
MsgBox("Kliknąłeś nr. 0")
Case "TextBox01"
MsgBox("Kliknąłeś nr. 1")
Case "TextBox02"
MsgBox("Kliknąłeś nr. 2")
'...
End Select
End Sub |
I OK - to jest proste, choć ciągle o wiele mniej wygodne niż tablica kontrolek z VB6...
Teraz mój problem:
Jak w prosty sposób przepisać wszystkie zmienne z wspomnianej tablicy TextData(3, 5) do odpowiadających im TextBox'ów? Mam na myśli "prosty" w sensie ilości kodu który trzeba wklepać, a nie koniecznie w sensie łopatologii. Teraz robię to tak:
| Code: |
TextBox00.Text = TextData(0, 0)
TextBox01.Text = TextData(1, 0)
...
TextBox22.Text = TextData(2, 5)
TextBox23.Text = TextData(3, 5) |
Jest to nie dość że pracochłonne, to jeszcze według mnie bardzo nieeleganckie...
Czy jest jakiś sposób, by poszczególnym TextBoox'om przypisać indeksy np. od 0 do 23, tak by móc się do nich odwoływać przykładowo w pętli For...Next?
Będę wdzięczny za wszelkie podpowiedzi, bo choć szukałem w helpie i w internecie - odpowiedzi nie znalazłem (albo czegoś nie rozumiem...)
Pozdrawiam
Andy
|
|