MessageBox.Show, появляющийся поверх RDC

1

Поэтому я недавно опубликовал вопрос о том, что MessageBox появляется поверх удаленного подключения к рабочему столу, и ответ, который я получил (ниже), работал нормально, пока я не решил поиграть с программой.

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

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

"Дополнительная информация: Неверная операция поперечного потока: Control 'Form1' обращается из потока, отличного от потока, в котором он был создан."

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

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

Спасибо, Том

  • 0
    Вы выполняете Alarm в фоновом потоке?
  • 2
    Можете ли вы опубликовать свой код, который вызывает Alarm ? Я почти уверен, что это не связано с RDP, а с потоками.
Теги:
messagebox
remote-desktop

1 ответ

1

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню