Wie kann man bei C# Bilder wieder löschen?

2 Antworten

Die Klasse ansprechen und dann das Attribut ersetzen. Ggf. gibt es auch eine Setmethode.


Also z.B. so

Klassenname.Attribut = "xxxx";

oder bei einer Methode

Klassenname.setMethode("xxxx");

Ist das in VS? Welches Panel nutzt du genau?


Warum neue Bilder rein laden, wenn man sie einfach überschreiben kann?


Alternativ kannst du das alte bild z.B. auch auf visible = false setzen.


Also:

NameObjekt.visible = false;

Ja, es is VS... Ich mein, ich hab ein Bild und per Knopfdruck, zum Beispiel wenn ich enter drück, soll ein neues Bild in das gleiche Panel geladen werden

0
@SchwarzHarrier

Verstehe ich das richtig. Du willst, dass die Bilder sich überlappen oder das das alte Bild direkt verschwindet?

Die Erstellung per Button oder Tatstatur geht bereits?

0
@R0k87

Ja, mach ich per KeyPress Event... Ich will das alte bild entfernen, und dann das neue reinladen

0
@SchwarzHarrier

Also lädst du bei dem Event eine neue Instanz eines Bildes? Also Quasi ein neues Steuerelement? Wenn ja sollte Instanz = null; gehen.


Erstellst du das neue Bild z.B. so:

Panel Bild = new Panel();

?


Es ist einfacher zu verstehen, wie du etwas löscht, wenn ich weiß wie du es erstellst.


Aber wenn das alte Bild direkt entfernt werden soll, kannst du doch einfach das Bild anpassen. Also Quasi das Attribut, welches den Pfad angibt, zum neuen änderst.

0
@R0k87

private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
switch (e.KeyChar)
{
case 'w':
MeiOMei = panel1.CreateGraphics();
Image PlayB = new Bitmap(Properties.Resources._1_Player_Back);
MeiOMei.DrawImage(PlayB, 0, 0, panel1.Width, panel1.Height);
panel1.Location = new Point(panel1.Location.X, panel1.Location.Y - 50);
break;

case 's':
MeiOMei = panel1.CreateGraphics();
Image Play = new Bitmap(Properties.Resources._1_Player_Front);
MeiOMei.DrawImage(Play, 0, 0, panel1.Width, panel1.Height);
panel1.Location = new Point(panel1.Location.X, panel1.Location.Y + 50);
break;

case 'a':

MeiOMei = panel1.CreateGraphics();
Image PlayL = new Bitmap(Properties.Resources._1_Player_Left);
MeiOMei.DrawImage(PlayL, 0, 0, panel1.Width, panel1.Height);
panel1.Location = new Point(panel1.Location.X - 50, panel1.Location.Y);
break;

case 'd':
MeiOMei = panel1.CreateGraphics();
Image PlayR = new Bitmap(Properties.Resources._1_Player_Right);
MeiOMei.DrawImage(PlayR, 0, 0, panel1.Width, panel1.Height);
panel1.Location = new Point(panel1.Location.X + 50, panel1.Location.Y);
break;
}
}

Ich bin halt noch ein Anfänger, aber ich versuchs halt irgendwie ;D

0
@SchwarzHarrier

Was soll das Programm denn nachher können? Also das habe ich so noch nie versucht. Aber testweise würde ich mal versuchen ob eines der folgenden geht:


1.

MeiOMei = null;


2.

panel1.Delete...

panel1.remove...


Ggf. musst du vorher die Grafik aus einer Liste auswählen.


3. MaiOMei.remove ... delete oder irgend etwas.


Ist das mit einer 2D Libary?

0

if(bild != null)

{

    bild = null;

}

bild = neuesBild;

Wobei "neuesBild" hier natürlich die Bilddaten des neuen Bildes sein sollen, ist nur Pseudocode.

Was möchtest Du wissen?