2009-08-03 18 views

Odpowiedz

20

Istnieje lepsze rozwiązanie, bez tworzenia nowego formularza.

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

0x40000 to "MB_TOPMOST" -Flag.

+0

To, co chciałem – harveyt

+0

To działa dla mnie – Masum

37

Próbowałem rozwiązania dostarczonego przez donutboy i nie wydaje się przyjmować 0x40000 (lub 40000) jako poprawną opcję jako wartość wykupienia MessageBoxOptions.

Jednak znalazłem, że za pomocą MessageBoxOptions.DefaultDesktopOnly ma ten sam wpływ i utrzymuje MessageBox na górze, dopóki nie zostanie potwierdzony przez użytkownika. tj.

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

To najprawdopodobniej najprostsze rozwiązanie natywne w ofercie.

+0

Tak, znalazłem, że ten też działa! Jest kilka sugestii, ale zgadzam się, że jest to najłatwiejszy do wdrożenia. –

+0

Dokładnie to, czego potrzebowałem! – Homer1982

+0

To zadziałało dla mnie !! Dzięki!! =) – marianotigre

3

Kolejny łatwy sposób obsłużyć to:

MessageBox.Show(new Form { TopMost = true }, "This is TopMost", "TopMost", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); 
Powiązane problemy