PDA

Vollständige Version anzeigen : Control Arrays


Jan
01.08.2001, 12:17
Wie kann ich zur Laufzeit ein Control Array erstellen ?

Danke

Dan
01.08.2001, 16:11
Hi,


Private MyCmd(1 To 20) As CommandButton

Sub VieleCommandButtonsMachen ()
Dim i As Integer

For i = 1 To 20
Set MyCmd(i) = Me.Controls.Add("Forms.CommandButton.1")
Next i

Bleibt die Frage, wie kriege ich das mit den Ereignissen hin?!???!? :(

Das hab ich nämlich noch nicht raus.

Wenn man ein einzelnes Control hinzufügt, kann man


Privat WithEvents MyCmd As CommandButton


benutzen und eine Sub namens
Private Sub MyCmd_Click ()
funktioniert dann auch... aber leider nicht beim Array

Wie Du siehst, brauche ich selber Hilfe :(


cu Daniel

Stefan Kulpa
01.08.2001, 18:02
<font face="Verdana" size="2">Hallo,

setze beispielsweise einen CommandButton auf eine Form (oben links) und nenne es cmdButton. Dann trägst Du in den Eigenschaften des Controls unter Index den Wert 0 ein. Im Load-Ereignis der Form schreibst Du dann folgenden Code:</font>

<PRE><FONT SIZE=1 FACE=Courier New><FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> Form_Load()

<FONT COLOR=#000080>Dim</FONT> i <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Long</FONT>
cmdButton(i).Caption = "Button 0"
<FONT COLOR=#000080>For</FONT> i = 1 <FONT COLOR=#000080>To</FONT> 5
Load cmdButton(i)
cmdButton(i).Top = cmdButton(i - 1).Top + cmdButton(i - 1).Height
cmdButton(i).Left = cmdButton(i - 1).Left
cmdButton(i).Caption = "Button " & i
cmdButton(i).Visible = <FONT COLOR=#000080>True</FONT>
<FONT COLOR=#000080>Next</FONT>

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT>

</FONT></PRE>

<font face="Verdana" size="2">Zur Laufzeit wird bei Klick auf einen der CommandButtons das Ereignis cmdButton_Click aufgerufen und der Index übergeben. Diesen benutzt Du dann um auf die gewählte Schaltfläche zu reagieren:</font>

<PRE><FONT SIZE=1 FACE=Courier New><FONT COLOR=#000080>Private</FONT> <FONT COLOR=#000080>Sub</FONT> cmdButton_Click(Index <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>)

MsgBox "Schaltfläche " & Index
Select Case Index
Case 0: <FONT COLOR=#008000>'** ToDo: Code eingeben</FONT>
Case 1: <FONT COLOR=#008000>'** ToDo: Code eingeben</FONT>
Case 2: <FONT COLOR=#008000>'** ToDo: Code eingeben</FONT>
Case 3: <FONT COLOR=#008000>'** ToDo: Code eingeben</FONT>
Case 4: <FONT COLOR=#008000>'** ToDo: Code eingeben</FONT>
Case 5: <FONT COLOR=#008000>'** ToDo: Code eingeben</FONT>
<FONT COLOR=#000080>End</FONT> Select

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Sub</FONT>

</FONT></PRE>

<font face="Verdana" size="2">Das war's schon ...

HTH</font>

Paedderson
21.05.2010, 16:48
Hi, hab's mal ausprobiert und funkzt nicht :-(
Kann eigentlich auch nicht. Das control ist eben nicht auch
gleichzeitig ein array....

Stefan Kulpa
31.05.2010, 08:32
Ein bemerkenswert sinnfreier Beitrag...