Hallo Leute !
Ich möchte eine von 4 TextBoxen mit einem Wert befüllen.
Diese eine TextBox soll zufällig ausgewählt werden.
Die Idee ist dass eine Rechnung in einem Feld angezeigt wird, und das Ergebnis
zufällig in einem der 4 Textboxen aufscheint.
Random rnd = new Random();
int a = rnd.Next(1, 10);
int b = rnd.Next(1, 10);
int Ergebnis = a * b;
int Zufallsbox = rnd.Next(1, 5);
und dann quasi (einfach ausgedrückt) TextBox+Zufallsbox = Ergebnis;
leider will er das nicht so banal... bzw. ich komme nicht darauf
Für Hilfe wäre ich sehr dankbar!
**
Vielen Dank im Voraus!!!!!!!!!!**
Und was hast Du bisher probiert? Wo ist das Problem?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hi,
naja - die Vorgehensweise wäre ja folgende:
a) die 4 Textboxen in einer Liste sammeln (z.B. List<TextBox>)
b) Wert aus der Berechnungstextbox auslesen und versuchen diesen in einen int zu parsen
c) Irgendeine Rechnung ausführen und das Ergebnis zwischenspeichern
d) Mit Hilfe von Random einer der 4 Textboxen aus der in a) erstellten Liste aussuchen
e) Das Ergebnis an das Text-Property der gewünschten TextBox zuweisen
Versuch das mal in Code zu bauen - und wenn du dabei auf Probleme triffst - kannst du ja weiter fragen.
LG
Hallo,
und dann quasi (einfach ausgedrückt) TextBox+Zufallsbox = Ergebnis;
siehe dazu auch [FAQ] Variablennamen zur Laufzeit zusammensetzen / Dynamisches Erzeugen von Controls
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
So... danke nochmal für den Input...
Habe das mit der List Methode probiert
das Ganze sieht jetzt so aus:
List<string> txtbx = new List<string>();
txtbx.Add(textBox1.Text);
txtbx.Add(textBox2.Text);
txtbx.Add(textBox3.Text);
txtbx.Add(textBox4.Text);
Random rnd = new Random();
int a = rnd.Next(1, 10);
int b = rnd.Next(1, 10);
int Ergebnis = a * b;
string myErgebnis = Convert.ToString(Ergebnis);
int r = rnd.Next(txtbx.Count);
txtbx[r] = myErgebnis;
Jetzt mein Problem:
wenn ich die TextBoxen vorher mit einem Wert befülle, und das mit einer MessageBox anzeigen lassen will, funktioniert das tadellos. Also er wählt zufällig eine Box aus und zeigt mir den Wert an.
MessageBox.Show((string)txtbx[r]);
jedoch in die andere Richtung, also dass er mir eine TextBox zufällig befüllt mit "myErgebnis" funktioniert nicht (wie oben im Code beschrieben).
Versteh halt nicht wieso es in die andere Richtung nicht funktioniert....
Grüße und Danke!
Du kopierst den Inhalt einer TextBox und veränderst nur die Kopie. Nicht die TextBox.
Da fehlen Dir noch die Grundlagen von Wert- und Verweistypen
Du hast auch nicht wirklich befolgt, was in dem Link von MrSparke steht: Du musst die TextBox in der Liste führen und NICHT nur die Value der TextBox.
List<TextBox > txtbx = new List<TextBox >();
txtbx.Add(textBox1);
txtbx.Add(textBox2);
txtbx.Add(textBox3);
txtbx.Add(textBox4);
Und jetzt mit der Referenz arbeiten.
PS: korrekte Anwendung von Random: [FAQ] Random.Next liefert eine Zeit lang die gleiche Zufallszahl - Warum? Wie geht es richtig?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Weil die Liste eine Liste von Textbox sein soll, und Textbox nunmal ein Objekt ist, und kein string.
txtbx[r] = myErgebnis; //meeep
MessageBox.Show((string)txtbx[r]); //doppel-meeep
Um den Text abzufragen, der in einer Textbox gehalten wird, benutzt man die Property Text.
Außerdem ist deine Anwendung von Random falsch.
Zudem ist das hier völliger Humbug:
int a = rnd.Next(1, 10);
int b = rnd.Next(1, 10);
int Ergebnis = a * b;
Das liefert dir einfach eine Zufallszahl zwischen 1 und 100. Das kann man auch einfacher haben.
LaTino
"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)