Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Visual Basic - mehrere Steuerelemente gruppieren

Edgar Rau / 7 Antworten / Flachansicht Nickles

Hallo zusammen,

ich beschäftige mich seit einigen Tagen mit Visual Basic und es klappt ganz gut.

Jetzt möchte ich mehrere Steuerelemente ausblenden, wenn ich auf eine Befehlsschaltflache klicke. Ich habe dazu folgendes geschrieben:

sub Command1_Click()
me.label1.visible = false
me.label2.visible = false
u.s.w.
End Sub


Da es sieben Steuerelemente sind und ich sie öfters nutze, würde ich sie gerne, wenn es geht, gruppieren, also nur einmal

me.gruppe.visible = false

eingeben ("gruppe" sollte dann für die Steuerelemente stehen").

Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt, bin halt Anfänger.

Wenn es also möglich ist, würde ich mich über eine kurze Anleitung freuen.

Im Voraus vielen Dank.


Gruß Edgar







Wer brauchen ohne zu gebraucht, braucht brauchen gar nicht zu gebrauchen
bei Antwort benachrichtigen
PaoloP Edgar Rau „Hi PaoloP, vielen Dank für Deinen Hinweis, das hört sich ja sehr interessant...“
Optionen

Okay dann will ich mal loseifern. (vielleicht hätte ich die schnauze halten sollen, dann wäre auch was gekommen)

Also wenn Du Dir die Eigenschaften eines Steuerelements z.B. einer Textbox ansiehst
findest Du da eine Index-Eigenschaft die erstmal nichts enthält. Wenn Du da jetzt eine 0
einträgst wird deine Textbox automatisch zu einem Array und so muss auch der Zugriff im Code
erfolgen also statt tbTextBox1.Text = "" muss nun tbTextBox1(0).Text im Code verwendet werden
da aus dem Steuerelement ein Array mit erstmal nur einem Control geworden ist.
Nun kannst Du weitere Instanzen davon auf dem Formular platzieren, am bestem mit Strg+C und Strg+V.
Du siehst in den Index-Eigenschaften der neuen Steuerelemente nun das diese nun einen jeweils höheren
Wert enthalten. Wenn Du das nun 2x gemacht hast dann hast Du nun ein Array mit 3 Textboxen.

Mit sinnlosem Text füllen könnte man diese dann so.

tbTextBox1(0).Text = "Das"
tbTextBox1(1).Text = "ist ein"
tbTextBox1(2).Text = "Test."

Über eine im Handel erhältliche For..Next Schleife kannst Du diese nun durchlaufen( for each wäre
besser aber ich hab vergessen wie die syntax dazu in vb6 war)

In diesem Bsp. verdopple ich einfach mal nur den Text-Inhalt.
Man beachte Lbound und Ubound, die liefern die untere und die obere grenze
des Arrays. Auf diese weise musst du den Code unter Umständen nicht mehr verändern
auch wenn Du vielleicht noch eine weitere Textbox hinzufügst.

Dim i&
For i = tbTextBox1.LBound to tbTextBox1.UBound

tbTextBox1(i).Text = tbTextBox1(i).Text & " :" &tbTextBox1(i).Text

Next i

Der eigentliche Vorteil dieses Prinzips ist das man auf diese Weise Steuerelemente
zur Laufzeit des Programms dynamisch nacherstellen und wieder löschen kann.
Wie das im Detail geht sollte in jedem besseren Buch oder VB-Seite stehen.


Jedes mal wenn jemand "Cloud" sagt, verliert ein Engel seine Flügel.
bei Antwort benachrichtigen