Отображать (всплывающее) окно сообщения на том же экране, на котором запущено приложение - PullRequest
0 голосов
/ 28 марта 2019

Я работаю над приложением c # winforms. Я активно работаю с 2 мониторами, а именно основной и дополнительный. Когда я запускаю приложение, окно сообщений всегда появляется на основном мониторе, независимо от того, на каком мониторе я запускаю приложение.

Здесь ниже показаны 2 способа, которые я пробовал, но на основном мониторе появляется окно сообщения:

1

MessageBox.Show("Test Success", "Success", MessageBoxButtons.OK, 
MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, 
MessageBoxOptions.ServiceNotification);

2.

MessageBox.Show("Test Success", "Success", MessageBoxButtons.OK, 
MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, 
MessageBoxOptions.DefaultDesktopOnly);

Можно ли как-то отобразить окно сообщений на мониторе, если я динамически запускаю приложение?

1 Ответ

1 голос
/ 28 марта 2019

, как уже указано в комментарии: не укажите MessageBoxOptions. Просто назовите это так:

MessageBox.Show("Test Success", "Success", MessageBoxButtons.OK, 
                MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);

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

Я хочу отобразить окно сообщений поверх всех других приложений, которые я открыл.

Тогда вы должны заставить Форму, которая вызывает MessageBox на поверхность. Позвоните, прежде чем показывать окно сообщения:

this.TopMost = true;
MessageBox.Show(...
...