VB-Homepage Tipp 303

Hinzufügen von Controls zur Laufzeit

Gleich zu Beginn die entmutigende Mitteilung ...

Nein es ist nicht möglich, in VB, zur Laufzeit einfach aus dem Nichts heraus neue Objekte zu erzeugen.

Warum dann aber dieser Tipp, weil es schon irgendwo geht, man braucht dazu aber ein Ursprungsobjekt (Vaterobjekt, denn Mutter/Kindformen gibt's ja schon).

Möglich ist dies über den Indexeintrag.

Fügen Sie Ihrer Form ZBsp. einen CommandButton hinzu und vergeben diesem in der Index Eigenschaft die 0.
In den Events erscheint nun auch der Eintrag (Index As Integer).
Außerdem setzen Sie die Visible Eigenschaft auf False.

Für die eigentliche Prozedur können Sie nun einen weiteren CommandButton einfügen oder der Einfachheit ZBsp. das Doppelklick Ereignis der Form nutzen, wie in nachfolgendem Beispiel.

Private Sub Form_DblClick()
Static iAnz As Integer
Static iReihe As Integer

'Beispiel nur für zwanzig Button ausgelegt
If iAnz > 20 Then Exit Sub

   If iAnz > 0 Then
      Load Command1(iAnz)
      Command1(iAnz).Caption = iAnz + 1

      'zweite Reihe
      If iReihe >= 10 Then
         Command1(iAnz).Top = Command1(iAnz).Top + 350
         Command1(iAnz).Left = Command1(iAnz - 10).Left

      'erste Reihe
      Else
         Command1(iAnz).Left = Command1(iAnz - 1).Left + 410
      End If
   End If

   If Command1(iAnz).Visible = False Then Command1(iAnz).Visible = True
   Command1(iAnz).SetFocus
   iAnz = iAnz + 1
   iReihe = iReihe + 1

End Sub

In unserem Beispiel wird beim ersten Doppelklick auf die Form der Originalbutton
eingeblendet und bei den darauffolgenden ein Abbild dessen, mit einer +1 nach oben gezählten Index Eigenschaft. So sind diese Button auch seperat ansprechbar und erhalten hier als Caption immer die fortlaufende Nummer zugewiesen. Im Beispiel werden so zwei Reihen a 10 Button erzeugt.


Tipp-Download

Quelle :

Zurück zur Übersichtsseite