2009-08-03 10 views

risposta

20

C'è una soluzione migliore, senza creare un nuovo modulo.

MessageBox.Show("Message Text", "Header", MessageBoxButtons.OK, MessageBoxIcon.None, 
    MessageBoxDefaultButton.Button1, (MessageBoxOptions)0x40000); // MB_TOPMOST 

Il 0x40000 è il "MB_TOPMOST" -Flag.

+0

Proprio quello che volevo – harveyt

+0

Funziona per me – Masum

37

Ho provato la soluzione fornita da donutboy e non sembra accettare 0x40000 (o 40000) come opzione valida come valore Enum MessageBoxOptions.

Tuttavia, ho trovato che l'utilizzo di MessageBoxOptions.DefaultDesktopOnly ha lo stesso effetto e mantiene il MessageBox in cima fino a quando non viene confermato dall'utente. ie.

MessageBox.Show("Hello there", "Prompt", MessageBoxButton.OK, MessageBoxImage.Warning, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly); 

Questa è probabilmente la soluzione nativa più semplice in offerta.

+0

Sì, ho trovato anche questo funziona! Ci sono diversi suggerimenti ma sono d'accordo che questo è il più facile da implementare. –

+0

Esattamente quello di cui avevo bisogno! – Homer1982

+0

Questo ha funzionato per me !! Grazie!! =) – marianotigre

3

Un altro modo semplice per gestire questa situazione:

MessageBox.Show(new Form { TopMost = true }, "This is TopMost", "TopMost", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
Problemi correlati