2016-08-05 24 views
0

Ich möchte ein Tray-Symbol und Anwendungssymbol für alle Formulare in der Anwendung gemeinsam sein. Wie kann ich das erreichen? Für Anwendungssymbol: Ich habe neues Symbol in den Eigenschaften der Anwendung hinzugefügt, zeigt aber immer noch Standard-Symbol in der Taskleiste.Globales Trayicon und Anwendungssymbol in Windows Forms?

Für Tray-Icon: Ich kann mehrere Funktionen für einzelne Form wie hinzugefügte Kontextmenü, ausblenden, öffnen usw. Aber wie dies für alle Formen zu erreichen.

Kann ich eine globale Datei erstellen, die für alle Formulare angewendet werden kann?

Antwort

1

Sie können die Symbole in Ihrem Code mithilfe des Ereignisses Form.Load oder des Konstruktors festlegen.

private void Form1_Load(object sender, EventArgs e) 
{ 
    // you could place this lines also in constructor 
    // but make sure you place it after the InitializeComponent() call 
    // bar is the name you defined while adding the resource 
    this.Icon = Properties.Resources.bar; 

    // and for your tray icons 
    this.notifyIcon1.Icon = Properties.Resources.bar; 
} 

Sie können das gleiche tun, um die Formulardesigner, indem Sie und stellen Sie die Icon Eigenschaft in dem Abschnitt der Form Eigenschaften und das Tray-Icon. In diesem Fall wird der Designer den Code in die vom Designer generierte Datei einfügen.

bearbeiten

Um den gleichen Code immer wieder zu verhindern, schreiben, können Sie Ihre eigene Form Basisklasse und setzen Sie das Symbol in den Konstruktor schreiben. Dann lassen Sie alle Ihre Forms von dieser Basisklasse ableiten.

// File: MyFormBase.cs 
public partial class MyFormBase : Form 
{ 
    public MyFormBase() 
     : base() 
    { 
     Icon = Properties.Resources.bar; 
    } 
} 

// In your Form file: 
public partial class MyForm : MyFormBase 
{ 
    // ... 
} 

Sie, um das Projekt gebaut haben die Formulardesigner wieder zu verwenden, nachdem Basisklasse From-MyFormBase ändern.

+0

Ich kann es für ein einzelnes Formular tun, aber es wird verschiedene Formen in einem Anwendungsrecht geben. Ich kann nicht für jedes Formular denselben Code schreiben. Also, was ist die Lösung? –

+1

Siehe meine Bearbeitung, @NithinB –