2009-03-16 7 views
1

Existe-t-il un moyen d'appeler MessageBox.Show qui apparaît dans la barre des tâches? Il serait probablement préférable de créer un formulaire personnalisé et de l'afficher bien sûr, mais étant un programmeur paresseux, je veux éviter de refaire les icônes de notification d'erreur et d'alerte par défaut que vous obtenez avec un bon vieux MessageBox.Show.MessageBox.Show saveur qui apparaît dans la barre des tâches

Répondre

3

Essayez d'utiliser le MessageBoxOptions ENUM:

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

Note: Il y a un effet secondaire de multithreading à l'utilisation de ce sujet, voir l'article How To Display A User Interface From A Daemon.

+2

Apparemment, tout MessageBox.Show sans parent spécifié apparaît dans la barre des tâches. – Jeremy

1

Implémentez une IWin32Window, renvoyez la poignée en tant que IntPtr.Zero (bureau), puis affichez la boîte de message avec cette fenêtre en tant que parent.

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; 
} 
Questions connexes