Entwickler-Ecke
Multimedia / Grafik - Butten beim klick wechseln.
ElJarno - Do 05.03.09 17:04
Titel: Butten beim klick wechseln.
jetzt hätt ich noch ne andere frage und zwar wie ich es machen könnte dass beim klick auf das bild es jedesmal zwischen zwei bilder hin und her schaltet, sprich so wie ein lichtschalter die stellungen ein und aus. hatte jetzt schon mal sowas hier geschrieben aber irgendwie funktioniert der button pB_eingang_b nur richtig der andere wehcselt zweimal und dann nicht mehr. liegt das irgendwie an c#
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46:
| public partial class frm_AND_Gatter : Form { private bool button_a; private bool button_b;
private Image image_a_off = Image.FromFile(Application.StartupPath + "\\Pictures\\Buttons\\blitz blau.png"); private Image image_b_off = Image.FromFile(Application.StartupPath + "\\Pictures\\Buttons\\blitz blau.png"); private Image image_y_off = Image.FromFile(Application.StartupPath + "\\Pictures\\Buttons\\stecker blau.png"); private Image image_a_on = Image.FromFile(Application.StartupPath + "\\Pictures\\Buttons\\blitz rot.png"); private Image image_b_on = Image.FromFile(Application.StartupPath + "\\Pictures\\Buttons\\blitz rot.png"); private Image image_y_on = Image.FromFile(Application.StartupPath + "\\Pictures\\Buttons\\birne rot.png");
public frm_AND_Gatter() { InitializeComponent();
pB_eingang_a.Image = image_a_off; pB_eingang_b.Image = image_b_off; pB_ausgang_y.Image = image_y_off; }
private void pB_eingang_a_Click(object sender, EventArgs e) { if (pB_eingang_a.Image == image_a_off) { pB_eingang_a.Image = image_a_on; } else if (pB_eingang_a.Image == image_a_on) { pB_eingang_a.Image = image_b_off; } }
private void pB_eingang_b_Click(object sender, EventArgs e) { if (pB_eingang_b.Image == image_b_off) { pB_eingang_b.Image = image_b_on; } else if (pB_eingang_a.Image == image_b_on) { pB_eingang_b.Image = image_b_off; } }
} |
vielen dank
jan
Kha - Do 05.03.09 17:17
ElJarno hat folgendes geschrieben : |
liegt das irgendwie an c# |
Sorry, aber der Fehler liegt leider in den meisten Fällen immer noch beim Programmierer ;) .
Schau dir die Methode und die darin verwendeten Bild-Bezeichner noch einmal genau an, dann
muss dir dein Fehler ins Auge springen.
JüTho - Do 05.03.09 17:18
So ist das mit dem Programmieren mit Copy&Paste. Hier hast Du Dich vermutlich vertan:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private void pB_eingang_b_Click(...
else if (pB_eingang_a.Image == image_b_on) else if (pB_eingang_b.Image == image_b_on) |
Gruß Jürgen
PS. Sebastian war schneller. Es ist natürlich auch ein Problem von "Betriebsblindheit", dass man solche Fehler nicht unbedingt erkennt.
PS 2. Den letzten Hinweis des zweiten Sebastian mit der speziellen Variablen würde ich auch bevorzugen.
jaenicke - Do 05.03.09 17:19
Ok, den Fehler hat
Kha ja bereits genannt. Den Rest kann ich ja lassen:
Das kommt von Copy&Paste und ungünstigen (unübersichtlichen) Bezeichnern. ;-)
Nimm am Besten keine Unterstriche, das verwirrt nur (ich weiß nicht wie das vom Styleguide her in C# damit aussieht).
Ich würde zudem eher den Zustand selbst in einer Variable speichern statt ihn an Hand des aktuellen Bildes festzustellen. ;-)
ElJarno - Do 05.03.09 17:47
Also das hier war nur en tippfehelr beim erstellen des threads
Zitat: |
So ist das mit dem Programmieren mit Copy&Paste. Hier hast Du Dich vermutlich vertan:
ausblenden anzeigen C#-Quelltext
ausgeblendet markieren
private void pB_eingang_b_Click(...
// falsch:
else if (pB_eingang_a.Image == image_b_on)
// richtig:
else if (pB_eingang_b.Image == image_b_on)
Gruß Jürgen |
aber der tipp die abfrage anhand von bool variablen zu machen hat geholfen. hat die perfomance jetzt auch verbessert. wie gesagt der erset button hat sich ja 2 mal verändert und dann nicht mehr
Zitat: |
Ich würde zudem eher den Zustand selbst in einer Variable speichern statt ihn an Hand des aktuellen Bildes festzustellen. ;-) |
danke für die schnellen antworten
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!