2014-07-24 2 views
1

Итак, я недавно задал вопрос о появлении MessageBox через соединение с удаленным рабочим столом, и ответ, который я получил (ниже), работал нормально, пока я не решил поиграть с программой.MessageBox.Show появляется над RDC

private void Alarm() 
{ 
    MessageBox.Show(this, 
       "Your text", 
       "Settings Needed", 
       MessageBoxButtons.YesNo, 
       MessageBoxIcon.Question 
       MessageBoxDefaultButton.Button1, // specify "Yes" as the default 
       (MessageBoxOptions)0x40000); 
} 

Теперь я пытаюсь вызвать этот метод из OnChanged события, и я получаю сообщение об ошибке

«Дополнительная информация: операция Cross-нить не действует: Контроль „Form1“доступны из нить, кроме темы, она была создана на. "

Мои знания немного ограничены в потоковом режиме, но мне нужно создать новую тему только для этого?

Или есть ли другой способ для меня иметь MessageBox для подключения к удаленному рабочему столу?

Спасибо, Том

+0

Выполняется ли 'Alarm' на фоновом потоке? –

+2

Можете ли вы разместить свой код, который вызывает «Тревога»? Я уверен, что это не связано с RDP, поскольку это связано с потоками. –

ответ

1

Я не вижу, что это имеет отношение к удаленному рабочему столу. Вы используете Form1 на фоновом потоке. Элементы пользовательского интерфейса должны использоваться в потоке пользовательского интерфейса.

Используйте один из способов вызова в поток пользовательского интерфейса и покажите свое окно сообщений.