User Passwort
 Passwort speichern Passwort vergessen?
 
 
 
 Alle Foren
 PDA-Dev :: Windows Mobile :: eMbedded
 Visual Basic
 Zugriff auf Dyn. Komponenten
Autor Vorheriges Thema Thema Nächstes Thema  

Norbert-1500

Neumitglied


1 Beitrag

Erstellt am: 27.08.2010 :  21:35:57 Uhr  Profil anzeigen  Autor eine Email senden  Antwort mit Zitat
Hallo,
ich versuche ein Dynamisches Formular zu entwerfen. Es soll ein TabContol mit mehreren seiten enthalten. Die TabSeiten werden Dynamisch im Programm erzeugt und gefüllt.
Jetzt versuche ich das Ergebnis auszulesen. Wie kann ich auf ein Dynamisch als Array erzeugtes Element zugreifen.
Codebeispiel: ' TabControl existiert schon mit 2 seiten
Dim Page() As TabPage ' Array der Seiten
Dim label() As Label ' Array der Label
Dim b_tt As Button ' ein Button der Dynamisch erzeugt wird
Private Sub b_Test_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles b_Test.Click
For i As Integer = 1 To 4 ' erzeugen der Seiten
ReDim Page(i) ' Array auf die Größe ändern
Page(i) = New TabPage ' neue Seite erzeugen
Page(i).Name = "p_" & Str(i) ' Name zuweisen
Page(i).Text = Str(i) ' Text zuweisen
For j As Integer = 1 To 4
ReDim label(j) ' Array anpassen
label(j) = New Label ' neuen Label erzeugen
label(j).Name = "l_" & Str(j) ' Name zuweisen
label(j).Text = Str(i) & "Test - " & Str(j) ' Text einfügen
label(j).Location = New Point(4, j * 25 + 20) ' Position festlegen
Page(i).Controls.Add(label(j)) ' Labe hinzufügen
Next j
If i = 1 Then ' auf seite 1
b_tt = New Button ' Button erzeugen
b_tt.Name = "B_TT_N" ' Name zuweisen
b_tt.Text = " Button Dyn " ' Text zuweisen
b_tt.Location = New Point(4, 4) ' posion
b_tt.Size = New Size(150, 30) ' größe
b_tt.Visible = True ' Sichtbar
AddHandler b_tt.Click, AddressOf B_TT_N_Click ' auf die Routine verweisen
Page(i).Controls.Add(b_tt) ' Button hinzufügen
End If
tc_Frage.TabPages.Add(Page(i)) ' Seite hinzufügen
Next i
End Sub
Private Sub B_TT_N_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Controls("p_1").Controls("l_2").Text = "Hallo" ' hier kommt der Fehler
End Sub
Kann mir jemand helfen?
Norbert
   

Useless user

PDA-Spezialist


465 Beiträge

Erstellt  am: 30.08.2010 :  10:50:47 Uhr  Profil anzeigen  Besuche Useless user's Homepage  Antwort mit Zitat
Die Zeile ist etwas gruselig:
Me.Controls("p_1").Controls("l_2").Text = "Hallo" ' hier kommt der Fehler
Ja, wo kommt der Fehler? Du machst 3 Zeilen in einer. Da spart zwar Platz aber erschwert die Fehlersuche. Außerdem ist es etwas unglücklich in den Controls-Collections die Controls anhand ihres Namens zu suchen. Du hast doch deine Controls selbst angelegt, warum nicht die Informationen und Objektverweise nutzen die du schon kennst.
Du hast dir oben ein TabPage-Array und ein Label-Array angelegt. Auf die erste TabPage kommst du mit Page(1) weil du in der i-Schleife die erste Page auf den Index 1 gelegt hast.
Bei den Labels ist es schwieriger, weil du das Array immer wieder überschreibst.
Das du hier mit 1 als ersten belegten Index arbeitest, ist ein etwas eigenwilliger Stil. Der Index des ersten Elementes eines Arrays ist im Normal immer 0. Vielleicht kommt daher der Fehler.
Zum Anfang der Seite
  Vorheriges Thema Thema Nächstes Thema  
Springe nach:
 
  Bookmark & Share  
 
 
 
  Tags  
 
Keine Tags gefunden
 
 
 



pda-dev.de

Quicklinks: Foren-Übersicht | Developer-News | Suche | Impressum

© just-works! Software

Zum Anfang der Seite

Snitz Forums 2000