MessageBox. Показать аромат, который появляется на панели задач
-
19-08-2019 - |
Вопрос
Есть ли способ вызвать MessageBox.Show, который появляется на панели задач?
Вероятно, было бы лучше просто создать пользовательскую форму и отобразить ее, но, будучи ленивым программистом, я хочу избежать повторения значков уведомлений об ошибках и предупреждений по умолчанию, которые вы получаете с помощью старого доброго старомодного вызова MessageBox.Show. р>
Решение
Попробуйте использовать MessageBoxOptions enum
MessageBox.Show("Test", "Test", MessageBoxButtons.OK, MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly);
Примечание. Существует несколько побочных эффектов многопоточности при использовании этого, см. статью Как отобразить пользовательский интерфейс из демона .
Другие советы
Реализуйте IWin32Window, верните дескриптор как IntPtr.Zero (рабочий стол), затем отобразите окно сообщения с этим окном в качестве родительского.
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;
}