2009-08-03 10 views
17

Wie man eine MessageBox.show() über andere Anwendung mit C# ??Keep MessageBox.show() über andere Anwendung mit C#

+1

Keine Notwendigkeit für zusätzlichen Code versuchen Sie dies: http://stackoverflow.com/questions/4834819/c-sharp-messagebox-to-front-when- app-is-minimized-to-tray –

Antwort

20

Es gibt eine bessere Lösung, ohne eine neue Form zu erstellen.

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

Die 0x40000 ist die "MB_TOPMOST" -Flagge.

+0

Genau das, was ich wollte – harveyt

+0

Es funktioniert für mich – Masum

37

Ich habe versucht, die Lösung von Donutboy und es scheint nicht 0x40000 (oder 40000) als gültige Option als MessageBoxOptions Enum Wert zu akzeptieren.

Allerdings habe ich festgestellt, dass die Verwendung von MessageBoxOptions.DefaultDesktopOnly hat den gleichen Einfluss und hält die MessageBox oben, bis es vom Benutzer bestätigt wird. dh.

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

Dies ist wahrscheinlich die einfachste native Lösung im Angebot.

+0

Ja, ich fand das funktioniert auch! Es gibt mehrere Vorschläge, aber ich stimme zu, dass dies am einfachsten zu implementieren ist. –

+0

Genau das, was ich brauchte! – Homer1982

+0

Das hat für mich funktioniert !! Vielen Dank!! =) – marianotigre

3

Eine weitere einfache Möglichkeit, dies zu umgehen:

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