C# Draft Mode, Bilder einer Picturebox hinzufügen

Gotenks666

Ensign
Registriert
Mai 2009
Beiträge
165
Guten Tag liebe Community,
ich bin ziemlich neu in sachen programmieren und brauche wieder eure Hilfe.
Ich möchte ein Simples Draft Mode programm erstellen wie man es kennt in Leauge Of Legends oder anderen MOBA's.

Ich habe mir gedacht, alles in verschiedenen Picturebox'en ablaufen zu lassen.

Ich habe nun 20 Bilder in meinem Programm. Links und Rechts stehen 5 leere PictureBox'en. Wenn ich ein Bild anklicke möchte ich das es in die Linke erste leere Picturebox übertragen wird. Wenn ich ein zweites Bild anklicke möchte ich das es in die Rechte erste leere Picturebox übertragen wird.

Ich zerbreche mir den ganzen Tag den Kopf darüber und finde in meinen Büchern leider auch nichts darüber, eventuell könnt ihr mir damit weiterhelfen :)!
 
Billigmethode

Bild_OnClick()
{
if (Hinzugefuegt == 0) { Picturebox1.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 1) { Picturebox2.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 2) { Picturebox3.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 3) { Picturebox4.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 4) { Picturebox5.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 5) { MessageBox.Show("Kein Platz mehr"); }
}

Dass du das nicht einfach reinkopieren kannst, sollte dir aber klar sein.

Es gibt auch noch PictureBox.ImageLocation = Image.FromFile("pfad");

=======================
Etwas besser:

Falls deine 20 Bilder schon in 20 Pictureboxen sind kannst du das folgendermaßen machen:
Die 5 PictureBoxen richtig anordnen.

int Hinzugefuegt = 0;

void Hinzufuegen(Image Bild)
{
if (Hinzugefuegt == 0) { Picturebox1.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 1) { Picturebox2.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 2) { Picturebox3.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 3) { Picturebox4.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 4) { Picturebox5.Image = Bild; Hinzugefuegt++;}
else if (Hinzugefuegt == 5) { MessageBox.Show("Kein Platz mehr"); }
}

private void AuswahlPicutureBox1_Click(object sender, EventArgs e) //Von Software hinzufügen lassen
{
Hinzufuegen(AuswahlPictureBox1.Image);
}
private void AuswahlPicutureBox2_Click(object sender, EventArgs e) //Von Software hinzufügen lassen
{
Hinzufuegen(AuswahlPictureBox2.Image);
}
....
private void AuswahlPicutureBox20_Click(object sender, EventArgs e) //Von Software hinzufügen lassen
{
Hinzufuegen(AuswahlPictureBox20.Image);
}
 
Zuletzt bearbeitet:
Hey danke erstmal für deine Hilfe doch leider wird das Bild nicht übertragen. Ich habe folgenden Code:
int Draft = 0;

void DraftMode(Image Bild)
{
if (Draft == 0)
{
draft1.Image = Bild; Draft++; // draft 1 ist die erste Picturebox wo das Bild von Picturebox 16 hinsoll
}
else if (Draft == 1)
{
draft2.Image = Bild; Draft++;
}
}

private void pictureBox16_Click(object sender, EventArgs e) //<-- da ist mein Bild.
{
DraftMode(draft1.Image);
}
 
Bitte genauer lesen:

private void pictureBox16_Click(object sender, EventArgs e) //<-- da ist mein Bild.
{
DraftMode(pictureBox16.Image);
}


Du übergibst der Draft Methode das Bild was du angeklickt hast, und die weist es dann dem nächst-freien Platz in dieser 5-er-Bild-Liste zu.

Achtung: Diese Vorgangsweise ist höchst billig! Ich glaube der übergibt nur die Referenz auf das Bild. Aber wenn du sonst nichts damit komplexes vorhast reicht das.
 
oh gott, das war mein fehler hab nicht richtig hingeschaut ! Ich danke dir nochmal ! :)
 
Hoffe es funktioniert jetzt. Schön, dass ich helfen konnte.
 
Zurück
Oben