Entwickler-Ecke
WinForms - Anfängerfrage: notifyIcon mit Checkbox an und aus machen
mrrioes - So 07.09.14 19:23
Titel: Anfängerfrage: notifyIcon mit Checkbox an und aus machen
Hey,
ich bin jetzt auch mal mit der C# Programmierung angefangen. Läuft soweit ganz gut, erstes Projekt war ein klassischer Taschenrechner.
Ich habe in dem Projekt jetzt ein notifyIcon hinzugefügt. Klappt super! Allerdings möchte ich in einer Checkbox die Benachrichtigung im Windows Tray aktivieren und deaktivieren.
Also:
Wenn Checkbox mit Haken: NotifyIcon soll aktiviert sein und eine Benachrichtigung im Tray sein.
Wenn Checkbox ohne Haken: Keine Benachrichtigung im Tray.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| private void notifyIcon3_MouseDoubleClick(object sender, MouseEventArgs e) { if (this.WindowState == FormWindowState.Normal) { this.WindowState = FormWindowState.Minimized; notifyIcon3.BalloonTipText = ("Dein Taschenrechner wurde minimiert!"); notifyIcon3.ShowBalloonTip(750); } else { this.WindowState = FormWindowState.Normal; notifyIcon3.BalloonTipText = ("Dein Taschenrechner wurde maximiert!"); notifyIcon3.ShowBalloonTip(750); } } |
Wie kann ich das hier mit einer If Abfrage (Checkbox) versehen?
Beste Grüße!
Achja, es gibt nur ein NotifyIcon, nicht 3. Hab damit nur rumexperimentiert und war dann zu faul, es auf notifyIcon1 umzubenennen ;)
mrrioes - So 07.09.14 20:28
Vielen Dank, hatte das halbe Internet durchsucht, aber natürlich die Seite nicht gefunden ;D
Für alle weiteren Anfänger, die das selbe Problem (hatten), hier der Code, der bei mir funktioniert!
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| private void notifyIcon3_MouseDoubleClick(object sender, MouseEventArgs e) { if (this.WindowState == FormWindowState.Normal) { this.WindowState = FormWindowState.Minimized; notifyIcon3.BalloonTipText = ("Dein Taschenrechner wurde minimiert!"); notifyIcon3.ShowBalloonTip(750); } else { this.WindowState = FormWindowState.Normal; notifyIcon3.BalloonTipText = ("Dein Taschenrechner wurde maximiert!"); notifyIcon3.ShowBalloonTip(750); } }
private void checkBox1_CheckedChanged(object sender, EventArgs e) { this.notifyIcon3.Visible = false; } |
Beste Grüße & vielen Dank!
C# - So 07.09.14 20:43
Ich will dich ja nicht enttäuschen, aber so wird es nicht funktionieren ;)
Wähle die Checkbox mal aus und dann wieder ab und du wirst sehen, dass dein NotifyIcon nicht mehr kommt.
Ändere deine checkBox1_CheckedChanged Methode:
C#-Quelltext
1: 2: 3: 4:
| private void checkBox1_CheckedChanged(object sender, EventArgs e) { notifyIcon3.Visible = !checkBox1.Checked; } |
Dann sollte es wirklich gehen.
Diese Codezeile bedeutet: wenn checkBox1 ausgewählt ist (
checkBox1.Checked), dann setzt
notifyIcon3.Visible auf false (das ! invertiert den Wert, also aus true wird false und andersrum). Wird die Checkbox wieder abgewählt, wird
notifyIcon3.Visible wieder auf true gesetzt.
mrrioes - So 07.09.14 20:57
woops, stimmt. Eine Frage noch, zum Abschluss sozusagen.
Was drückt das this. aus? Ich weiß, was das bedeutet, aber wofür steht das im Programm?
C# - So 07.09.14 21:32
Das
this ist ein Verweis auf das aktuelle Objekt. In den meisten Fällen braucht man es nicht.
Sagen wir du hast deine Form:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| class MeineForm : Form { int Wert;
public MeineForm() { this.Wert = 5; Wert = 5; } } |
Das
this ist hier das Gleiche wie
MeineForm.
Brauchen tust du es z.B. wenn Klassenvariablen und Methodenvariablen den gleichen Namen haben, also:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| class MeineForm : Form { int Wert; public MeineForm(int Wert) { this.Wert = Wert; } } |
Oder du hast eine Funktion die das Objekt als Parameter fordert, z.B.:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| class MeineForm : Form { void Button_Click(object sender, EventArgs e) { EineAndereKlasse.ÄndereForm(this); } }
class EineAndereKlasse { public static void ÄndereForm(Form eineForm) { } } |
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!