2009-03-16 9 views
1

Gibt es eine Möglichkeit, MessageBox.Show aufzurufen, die in der Taskleiste angezeigt wird?MessageBox.Show Geschmack, der in der Taskleiste angezeigt wird

Es wäre wahrscheinlich am besten, nur ein benutzerdefiniertes Formular zu erstellen und es natürlich anzuzeigen, aber als ein fauler Programmierer möchte ich vermeiden, die Standard-Symbole Fehler und Warnung, die Sie mit einem guten altmodischen MessageBox.Show Anruf erhalten.

Antwort

3

Versuchen Sie, die MessageBoxOptions Enum mit:

MessageBox.Show("Test", "Test", MessageBoxButtons.OK, MessageBoxIcon.Information, 
    MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); 

Hinweis: Es gibt einige Multi-Threading Nebeneffekt der Verwendung dieser, siehe den Artikel How To Display A User Interface From A Daemon.

+2

Anscheinend wird jede MessageBox.Show ohne ein übergeordnetes Elternteil in der Taskleiste angezeigt. – Jeremy

1

Implementieren Sie ein IWin32Window, geben Sie das Handle als IntPtr.Zero (Desktop) zurück, und zeigen Sie das Meldungsfeld mit diesem Fenster als das übergeordnete Element an.

1
private static Image GetImage(MessageBoxIcon icon) 
{ 
    switch (icon) 
    { 
     case MessageBoxIcon.Error: 
      return System.Drawing.SystemIcons.Error.ToBitmap(); 
     case MessageBoxIcon.Exclamation: 
      return System.Drawing.SystemIcons.Exclamation.ToBitmap(); 
     case MessageBoxIcon.Information: 
      return System.Drawing.SystemIcons.Information.ToBitmap(); 
     case MessageBoxIcon.Question: 
      return System.Drawing.SystemIcons.Question.ToBitmap(); 
    } 
    return null; 
} 
Verwandte Themen