| |

VB.NET - Fortgeschrittenedynamisches Objekt unsichtbar | |  | Autor: Physiker2006 | Datum: 17.01.11 02:02 |
| Hallo liebe Foren-Mitglieder,
wieder einmal komme ich nach langem Probieren mit meinem VB-Programm nicht weiter. Das Problem:
zur Laufzeit erstelle ich in einer Schleife n GroupBoxes und in jedem Schritt auch ein Label, welches das Child der eben erstellten Box ist. Es gibt also n GroupBoxes und n Labels, wobei GroupBox(n) das Parent von Label(n) ist. Quellcode:
'## Sub, die das Layout neu aufbaut
Sub NewLayout(ByVal Count As Integer)
If Count > 0 Then
Dim GrpBox(Count) As GroupBox
Dim lbl(Count) As Label
Dim Xpos As Integer = 10
Dim YposGrp As Integer = 10
'## Schleife zur Erstellung der Groupboxen
For AnzGrp As Integer = 0 To Count - 1
GrpBox(AnzGrp) = New GroupBox
Controls.Add(GrpBox(AnzGrp))
GrpBox(AnzGrp).Parent = Me
GrpBox(AnzGrp).Name = "GrpBox" & AnzGrp.ToString
GrpBox(AnzGrp).Size = New Size(700, 100)
GrpBox(AnzGrp).Text = Namearray(AnzGrp) '## global definiert
GrpBox(AnzGrp).Location = New Point(Xpos, YposGrp)
YposGrp += 105 '## verschiebung der elemente bei jedem durchlauf
'## Erstellung des Labels
lbl(AnzGrp) = New Label
Controls.Add(lbl(AnzGrp))
lbl(AnzGrp).Parent = GrpBox(AnzGrp)
lbl(AnzGrp).Name = "lbl" & AnzGrp.ToString
lbl(AnzGrp).Size = New Size(660, 40)
lbl(AnzGrp).Text = "Hallo Test " & AnzGrp.ToString
lbl(AnzGrp).Location = New Point(Xpos, GrpBox( _
AnzGrp).Location.Y + 7)
'## Test, ob die labels zu den GroupBoxes hinzugefügt wurden
If GrpBox(AnzGrp).Controls.ContainsKey("lbl" & AnzGrp.ToString) _
Then
MsgBox("label existiert")
Else
MsgBox("label existiert nicht")
End If
Next
End If
End Sub So, was jetzt passiert ist Folgendes: die Boxen werden alle korrekt erzeugt. Die Label werden erzeugt(das liefert das Testergbnis der if-Abfrage), angezeigt wird aber nur das erste Label, also lbl(0) mit dem Text "Hallo Test 0". Die Positionen der anderen (location.x,y) habe ich mir auch ausgeben lassen und diese sind auch korrekt. Ich habe den Eindruck, dass nur im ersten Schleifendurchlauf das Label nach der GroupBox erzeugt wird und ich denke, es liegt irgendwie doch ein parent-Fehler vor. Leider habe ich keine Ahnung, wie ich den beheben kann und die Beziehungen der Objekte untereinander überprüfen kann. Was mich aber am meisten wundert: warum klappt es immer beim ersten Label? bei einem Count von 3 ist das erste Label sichtbar, die anderen beiden nicht. Ich habe festgestellt, dass die Reihenfolge der Parent-casts ziemlich ausschlaggebend ist, es kann also auch daran liegen...
Ich hoffe, dass ihr mir helfen könnt. Einen guten Start in die Woche wünscht
der Physiker2006
Liebe Grüße in die Nacht
A doctor each day keeps the apple away |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|