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.

È stato utile?

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;
} 
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top