random farben

Habne frage ich hab drei textboxen undwill sie mit einer leichten funktion färben. Also nach zufallszahlenprinzip.

Select Case zahl
Case 1
Textbox1.BackColor = RGB(0, 0, 255)
Case 2
Textbox1.BackColor = RGB(0, 255, 0)
Case 3
Textbox1.BackColor = RGB(255, 0, 0)
Case 4
Textbox1.BackColor = RGB(0, 255, 255)
Case 5
Textbox1.BackColor = RGB(255, 0, 255)
Case 6
Textbox1.BackColor = RGB(255, 255, 0)
Case 7
Textbox1.BackColor = RGB(255, 255, 255)
End Select


dashab ich bis jetzt und ich will das nicht einzeln für jede textbox schreiben danke!
Mit einer Schleife am besten aber dafür müsste sich die textbox1 jedesmal erhöhen. HILFE :'(
 
Hallo Ruler,

wenn ich Dich richtig verstanden habe hast du mehrere Textboxen und möchtest denen jeweils dieselbe Farbe zuweisen.
Du könntest zum Beispiel ein Array(?) mit Textboxen erstellen. Dazu musst du nur den Index jeweils setzen und dir merken wieviele Textboxen du hast (anzahlTextboxen)
Also so nach dem Motto, Textbox(i).
Und dann je Farbe:
Code:
Case 1
   For i=0 to anzahlTextboxen
   Textbox(i).BackColor = RGB(0, 0, 255)
Case 2 
   ...

Mfg Calvin
 
Wenn es dir nicht wichtig ist, dass bei einer bestimmten "Zahl" nicht die Farbe herauskommt, die du angegeben hast, dann könntest du es so machen:

(Bei dir kommt die Farbe Blau bei der Zahl 1, bei mir kommt sie bei 4. Die anderen Farben sind auch vertauscht)

Code:
Dim Rot As Integer
Dim Blau As Integer
Dim Grün As Integer
If ((Zahl And 1) = 1) Then Rot = 255
If ((Zahl And 2) = 2) Then Grün = 255
If ((Zahl And 4) = 4) Then Blau = 255
 
Textbox1.BackColor = RGB(Rot, Grün, Blau)
Damit du diesen Code verstehst musst du allerdings wissen, wie Zahlen im Binärsystem aussehen und wie der Computer Variablen damit im Arbeitsspeicher speichert. Wenn du weißt wie das so ist, dann kann ich dir auch gerne erklären, wie der Code hier funktioniert.
 
Ich weiß nicht ob ihr vielleicht meine Frage falsch verstanden habt aber ich will das alle drei textboxn färben und will nicht jedesmal eine neue case anweißung benutzen. Also so etwas in der art:
for i = 1 to (textboxanzahl)
select case farbe
case farbe = 1
textbox(i).interior.colorindex= farbe.............




oder so in der art
 
Schreib dir eine Funktion die als Parameter eine Zufahlszahl bekommt und dir eine Farbe zurück gibt.
 
Also, du willst EINE zufällige Farbe und DREI Textboxen sollen alle diese GLEICHE Farbe bekommen? Da könntest du
  • mein Codebeispiel erweitern:
Code:
Textbox1.BackColor = RGB(Rot, Grün, Blau)
Textbox2.BackColor = RGB(Rot, Grün, Blau)
Textbox3.BackColor = RGB(Rot, Grün, Blau)
  • bei deinem Code einfach eine Variable für die Farbe verwenden und diese dann den Textboxen zuweisen:
Code:
Dim lFarbe As Long
Select Case zahl
Case 1
lFarbe  = RGB(0, 0, 255)
Case 2
lFarbe  = RGB(0, 255, 0)
Case 3
lFarbe  = RGB(255, 0, 0)
Case 4
lFarbe  = RGB(0, 255, 255)
Case 5
lFarbe  = RGB(255, 0, 255)
Case 6
lFarbe  = RGB(255, 255, 0)
Case 7
lFarbe  = RGB(255, 255, 255)
End Select

Textbox1.BackColor = lFarbe
Textbox2.BackColor = lFarbe
Textbox3.BackColor = lFarbe
Benutzt du VB oder VB.Net? Sind deine Textboxen zu einem Array zusammengefasst?
 
wir sind schon kurz vor dem ziel ^^

ich will das so wie du das gemacht hast und das alle textboxen verschiedene farben bekommen. Und nein ein array hab ich nicht gemacht. Ich benutze VBA und bin noch nicht so der beste xD
 
Dann mach doch einfach eine Funktion, die eine zufällige Farbe ermittelt. Und dann rufst du die Funktion dreimal auf und gibst das Ergebnis jeweils an die Hintergrundfarbe der entsprechenden Textbox. So wie es mage vorgeschlagen hat!
 
Zurück