notifyIcon
-
Durch einen String der sich ständig ändert ändere ich in meiner Anwendung das NotifyIcon.
Das mache ich so:if (s3 == "1") notifyIcon1.Icon = Properties.Resources._1; if (s3 == "2") notifyIcon1.Icon = Properties.Resources._2; if (s3 == "3") notifyIcon1.Icon = Properties.Resources._3; usw. usw.
Wenn ich das Icon vom String 1 bis String 30 ändern will dann schreibe ich 30 Zeile Code wie oben...
Habe gelesen dass man das ganze per Resource.Manager einfacher machen kann.
Kann man es einfacher machen , damit ich keine 30 Zeile Code schreiben muss ?
Hat vielleicht jemand eine Beispiel, komme nicht drauf .
Gruss
-
schmiedekolben schrieb:
Durch einen String der sich ständig ändert ändere ich in meiner Anwendung das NotifyIcon.
Das mache ich so:if (s3 == "1") notifyIcon1.Icon = Properties.Resources._1; if (s3 == "2") notifyIcon1.Icon = Properties.Resources._2; if (s3 == "3") notifyIcon1.Icon = Properties.Resources._3; usw. usw.
Wenn ich das Icon vom String 1 bis String 30 ändern will dann schreibe ich 30 Zeile Code wie oben...
Habe gelesen dass man das ganze per Resource.Manager einfacher machen kann.
Kann man es einfacher machen , damit ich keine 30 Zeile Code schreiben muss ?
Hat vielleicht jemand eine Beispiel, komme nicht drauf .
Gruss
Properties.Resources.ResourceManager.GetObject(String.Format("_{0}", s3));
-
Danke für die schnelle Antwort, aber ich habe es noch nicht so richtig verstanden.So funktioniert es auf jeden Fall nicht:
[/cs]notifyIcon1.Icon = Properties.Resources.ResourceManager.GetObject(String.Format("_{0}", s3
));
Fehler 1 Der Typ "object" kann nicht implizit in "System.Drawing.Icon" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
Gruss
-
Wenn sich die Icons (von Null durchnummeriert) als Resource in deinem Projekt befinden, ist das ganze sehr einfach (x = die Anzahl deiner Icons):
protected Icon[] aIcon = new Icon[x]; ... for (int i = 0; i < x; i++) { aIcon[i] = new Icon(GetType(), "NameDeinesProgramms." + i + ".ico"); }
Zugewiesen wird dann nur noch mit:
notifyIcon.Icon = aIcon[n];
Hier steht das n für eine Ziffer zwischen 0 und x.
-
Ja meine Icons habe ich zum Projekt hinzugefügt und die Namen von 0.ico bis X.ico vergeben.
Ich möchte das Icon bei einem bestimmten String ändern "s3", also wenn s3 = 1 dann soll mein 1.ico angezeigt werden.So wie hier:if (s3 == "1") notifyIcon1.Icon = Properties.Resources._1; if (s3 == "2") notifyIcon1.Icon = Properties.Resources._2; if (s3 == "3") notifyIcon1.Icon = Properties.Resources._3; usw...
das ganze funktioniert, aber bei 30 Icons muss ich 30 Zeile Code schreiben.
Was ist eigentlich mit der Lösung von @oks.. wo muss da s hanze hin ? Resources.Designer ? So funktionier es nicht ?
@oks kannst du mir dabei Helfen wo ich deine Lösung reinschreiben soll..notifyIcon1.Icon = Properties.Resources.ResourceManager.GetObject(String.Format("_{0}", s3));
Fehler 1 Der Typ "object" kann nicht implizit in "System.Drawing.Icon" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
Danke für die Mühe
Gruss
-
schmiedekolben schrieb:
Ja meine Icons habe ich zum Projekt hinzugefügt und die Namen von 0.ico bis X.ico vergeben.
Ich möchte das Icon bei einem bestimmten String ändern "s3", also wenn s3 = 1 dann soll mein 1.ico angezeigt werden.So wie hier:if (s3 == "1") notifyIcon1.Icon = Properties.Resources._1; if (s3 == "2") notifyIcon1.Icon = Properties.Resources._2; if (s3 == "3") notifyIcon1.Icon = Properties.Resources._3; usw...
das ganze funktioniert, aber bei 30 Icons muss ich 30 Zeile Code schreiben.
Was ist eigentlich mit der Lösung von @oks.. wo muss da s hanze hin ? Resources.Designer ? So funktionier es nicht ?
@oks kannst du mir dabei Helfen wo ich deine Lösung reinschreiben soll..notifyIcon1.Icon = Properties.Resources.ResourceManager.GetObject(String.Format("_{0}", s3));
Fehler 1 Der Typ "object" kann nicht implizit in "System.Drawing.Icon" konvertiert werden. Es ist bereits eine explizite Konvertierung vorhanden. (Möglicherweise fehlt eine Umwandlung.)
Danke für die Mühe
Gruss
Die Fehlermeldung sagt doch ganz genau was fehlt... Setz mal eine Umwandlung dazu:
notifyIcon1.Icon = (Icon)Properties.Resources.ResourceManager.GetObject(String.Format("_{0}", s3));