Держите Messagebox.show () поверх другого приложения, используя c # - PullRequest
33 голосов
/ 03 августа 2009

Как сохранить Messagebox.show () поверх другого приложения, используя c # ??

Ответы [ 3 ]

65 голосов
/ 22 января 2015

Я попробовал решение, предоставленное donutboy, и оно не принимает 0x40000 (или 40000) в качестве допустимого параметра в качестве значения перечисления MessageBoxOptions.

Однако я обнаружил, что использование MessageBoxOptions.DefaultDesktopOnly имеет тот же эффект и удерживает MessageBox сверху, пока пользователь не подтвердит его. то есть.

MessageBox.Show("Hello there", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);

Это, вероятно, самое простое нативное решение в продаже.

25 голосов
/ 22 декабря 2013

Есть лучшее решение, без создания новой формы.

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

0x40000 - это флаг "MB_TOPMOST".

11 голосов
/ 27 января 2016

Еще один простой способ справиться с этим:

MessageBox.Show(new Form { TopMost = true }, "This is TopMost", "TopMost", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...