FAQ | Points | Add... | Recent posts | Search | Register | Log in


[VB.NET 2008] Jak zastąpić Control Array z VB6?


Post new topic  Reply to topic      Main Page -> Forum Index -> Programming Generally -> [VB.NET 2008] Jak zastąpić Control Array z VB6?
Author
Message
Andy74
Poziom 18
Poziom 18


Joined: 08 Jan 2003
Posts: 473
Location: U3pjemVyY293

Post#1 Post from the author of the topic 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
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 18 Mar 2008 19:37   





Back to top
   
bolek_bb
Poziom 5
Poziom 5


Joined: 12 Jul 2007
Posts: 12
Location: Lublin

Post#2 12 Oct 2008 02:12   

Re: [VB.NET 2008] Jak zastąpić Control Array z VB6?


Dim i As Integer
For i = 0 To Me.Controls.Count() - 1
Me.Controls.Item(i).Text = "aaa" + i.ToString ' zamiast aaa i i.tostring wpisujesz wartość z tablicy (jak:?: wymyśl)
Next
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Programming Generally -> [VB.NET 2008] Jak zastąpić Control Array z VB6?
Page 1 of 1
Similar topics
Jak przyspieszyć odczytywania danych z pliku [VB6]? (1)
[VB 2008.NET] Plik PNG kanał alpha, cień. (3)
[VS 2008][.NET] zlinkowanie dll do mojego projektu (4)
[visual c++][cli]array<Point> to array<byte> (2)
[C/C++] warn: array subscript is below array bounds (2)
sql i Visual studio net 2008 (1)
VB6, Delphi lub Visual Studio 2008 (8)
Suma kontrolna w VB6.0 - jak odczytać CRC? (1)
Dzielenie String-a w VB6, jak szukać przecinka? (2)
petal w VB6 jak zwolnić wykonywanie jej (5)

Page generation time: 0.093 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed