Autor Beitrag
MiLaIm
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 08.06.07 16:03 
Hallo erstmal,
also ich hab mit c# angefangen und hab da ein problem, und zwar:
ein kleines lotto programm hab ich gemacht, wenn ich es laufen lasse klappt alles, bis auf den Button , der die Zahlen generieren soll. (also läuft da eigentlich garnichts).

ERstmal hab ichs ohne arrays gemacht aber ich möchts mit arrays machen und deswegen bräuchte ich bisschen hilfe.
hier der SC:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
        private void btnGenerate_Click_1(object sender, EventArgs e)
        {
            int i, GesamtZahlen = 6 ;
            int[] Lotto;
            Lotto = new int[6];
           
            System.Random rand;
            rand = new System.Random();
            for (i = 0; i < GesamtZahlen; i++)
                {
                    Lotto[i] = rand.Next(49) + 1;
                
                }
            txtAnzeige.Text = Lotto[i].ToString() + " ";         
            
        }


Also, so hab ichs mir vorgestellt.
Jetzt, wenn der IndexOutOfRangeException fehler kommt, zeigts auf
txtAnzeige.Text = Lotto[i].ToString() + " ";


Also, hoffe hab euch nicht verwirrt. Danke im voraus für die Hilfe.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 08.06.07 16:15 
Hallo und :welcome:

Die Zeile steht außerhalb der Schleife. Nach Beendigung der Schleife hat i den Wert 6 und das ist dann außerhalb der Grenzen Deines Arrays.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 08.06.07 17:13 
Christian hat recht.

Außerdem wird in diesem Fall nur eine Zahl, nämlich die i-te, in die TextBox aufgenommen. Ich schlage deshalb vor, was Du vermutlich wolltest:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
//  Anzeige zurücksetzen
txtAnzeige.Text = "";
for (i = 0; i < GesamtZahlen; i++)
{
    Lotto[i] = rand.Next(49) + 1;                
    //  Anzeige ergänzen - schlechte Methode:
    //  txtAnzeige.Text += Lotto[i].ToString() + " ";         
    //  Anzeige ergänzen - bessere Methode:
    txtAnzeige.AppendText(Lotto[i].ToString() + " ");         
}

Ich warne Dich aber: String-Verknüpfung ist die schlechteste Methode und gerade mal in einer solchen Situation hinzunehmen. Grundsätzlich sind StringBuilder für die Verknüpfung von Strings zu verwenden; und für TextBoxen gibt es eben AppendText().

Gruß Jürgen
MiLaIm Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 08.06.07 20:13 
Hallo Jürgen, hallo Christian.

Ich bedanke mich seeeeeeeeeeeeehr bei euch.
Ihr habt mir echt sehr geholfen :-)

Das freut mich, echt. ich hab mir so den kopf drüber gemacht. hehe

Ihr seit ja echt cool

Respecttt