MessageBox. Показать аромат, который появляется на панели задач

StackOverflow https://stackoverflow.com/questions/649658

  •  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;
} 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top