MessageBox.Show flavour che appare sulla barra delle applicazioni
-
19-08-2019 - |
Domanda
C'è un modo per chiamare MessageBox.Show che appare nella barra delle applicazioni?
Probabilmente sarebbe meglio semplicemente creare un modulo personalizzato e visualizzarlo ovviamente, ma essendo un programmatore pigro voglio evitare di ripetere le icone di notifica di errore e avviso predefinite che ottieni con un buon vecchio MessageBox.Show call.
Soluzione
Prova a utilizzare MessageBoxOptions enum :
MessageBox.Show("Test", "Test", MessageBoxButtons.OK, MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
Nota: ci sono alcuni effetti collaterali multi-thread nell'uso di questo, vedi l'articolo Come visualizzare un'interfaccia utente da un demone .
Altri suggerimenti
Implementare una finestra IWin32, restituire l'handle come IntPtr.Zero (desktop), quindi visualizzare la finestra di messaggio con quella finestra come padre.
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;
}