Einstellungen für alle Textboxen einer Form...

MIniMe_

Erfahrenes Mitglied
Hi ihr!
Lest euch mal den folgenden Code durch, um zu verstehen, was ich will:
(txtname ist eine Textbox, die "pkTextline")
Code:
Private Sub txtname_Change()
Call change
End Sub

Private Sub txtname_GotFocus()
txtname.ForeColor = enabled_c
End Sub

Private Sub txtname_LostFocus()
txtname.ForeColor = disabled_c
End Sub
_______________________
Private Sub change()
btnuebernehmen.Enabled = True
btnuebernehmen.ForeColor = &H0&
End Sub
So sieht es im Moment auf meiner Einstellungen-Form aus...
Jetzt habe ich da aber gleich eine ganze Menge solcher Textboxen, und will deshalb all diese 'Funktionen' für alle verfügbar machen, ohne das ich für jede Textbox jedes mal den selben Code mit kleinen Abänderungen schreiben muss....

Ich hab mal in einem Forum gesehen, das es möglich ist, weiß aber nicht mehr wie....


Greets, MiniMe_
 

Dario Linsky

Erfahrenes Mitglied
leg dir doch einfach ein steuerelement-feld an. über den index kannst du dann ein einzelnes control direkt ansprechen.
 

MIniMe_

Erfahrenes Mitglied
Erläuter mal bitte genauer wie du das meinst.

Z.B. will ich auch allen Textboxen in Form_load eine einheitliche background Farbe, o.ä. geben...

Greets, MiniMe_
 

Dario Linsky

Erfahrenes Mitglied
benenn die steuerelemente einfach alle gleich. bei dem dialog, ob du ein feld erstellen willst, klickst du auf ja. dann kannst du für jedes control einen index angeben und alle zusammen bearbeiten:
Code:
Private Sub txtAlle_Change(Index As Integer)
'Alle Hintergrundfarben verändern:
txtAlle.BackColor = vbBlack
'einzelne Farbe ändern:
txtAll(0).BackColor = vbWhite
End Sub
 

MIniMe_

Erfahrenes Mitglied
Ahja.
Ich hatte das irgendwie so(oder so ähnlich) gesehen:
Code:
Dim cont As Controls
Irgendwie so hatte ich das gesehen... kannst du dir da einen Reim draus machen?
 

Dario Linsky

Erfahrenes Mitglied
controls ist so eine art objekt, besser gesagt eine aufzählung aller objekte auf einem formular. du kannst z.b. mit
Code:
For i = 0 To Controls.Count
    MsgBox Controls(i).Name
Next i
alle controls durchlaufen.
 

MIniMe_

Erfahrenes Mitglied
Hmm... alle Probleme sinds anscheinend doch nicht:
Ich hatte die Sache mit 'Change', 'GotFocus' und 'LostFocus' vergessen....

Wie du gesagt hast, alle gleich zu nennen und sie dann über den Index anzusprechen, gefällt mir nicht wirklich, weil ich zu faul :)-)) bin, alle Objekte den selben Namen zu geben, und sie dann auch so anzusprechen.

Gibts da nicht noch ne Ausweichmöglichkeit?
Sowas wie:
Code:
Private Sub Controls_GotFocus(Index As Integer)
Oder so?

Greets, Minime_