Извините, если мне кажется, что я пишу тот же вопрос. Проблема похожа, но я узнаю все больше и больше о проблеме каждый раз. Так что заранее спасибо за помощь. Это высоко ценится. : D
Я хочу показать форму / диалог с определенным условием внутри цикла. Моя проблема в том, что я создал этот сегмент кода в моей программе, и когда я выполняю свое условие и показываю свою форму, он не отображается должным образом. Я сузил проблему до цикла, поскольку он отлично работает в других местах программы. Но всякий раз, когда я пытаюсь вызвать метод .Show в моей форме перед началом цикла или внутри цикла, он не отображается должным образом. В частности, моя форма / диалог имеет только одну метку на данный момент. Вот что происходит, когда я вызываю метод .Show в моей форме / диалоге:
- Невозможно взаимодействовать (IE перемещает или закрывает его с помощью «X») с формой / диалоговым окном - значок мыши показывает, что он думает / работает, если вы наводите курсор на форму / диалоговое окно.
- Фон не загружается - рамка и заголовок / заголовок загружаются для диалога, но фон не загружается. На самом деле это не так, чтобы начать, чтобы вы могли видеть через форму / диалог. Если вы щелкнете где-нибудь, фон станет черным.
- Метка не загружается - это, вероятно, связано с фоном, но вы не можете видеть метку или контур / затенение там, где это должно быть.
Вот мой сегмент кода:
private void ConnectSequence(object sender, DoWorkEventArgs e)
{
EstablishingConnection ourECF = new EstablishingConnection();
// Loop till connected
while (!this.ourCC.Connected)
{
this.ourCC.InitializeConnection();
// If we didn't connect and ourECF isn't already shown then show it
if (!this.ourCC.Connected && false == ourECF.Visible)
{
ourECF.Show();
}
}
ourECF.Dispose();
}
Вот что я пытаюсь сделать:
- Цикл до установления соединения
- Если после первой попытки подключения произошел сбой, отобразите форму / диалоговое окно, предупреждающее пользователя о попытке установить соединение
Код сам по себе прекрасно работает. Если я выключаю сервер и запускаю клиентское приложение, появляется всплывающее окно / диалоговое окно, которое не работает должным образом. Когда я снова включаю сервер, он выходит из цикла и избавляется от формы / диалога. В настоящее время у меня есть BackgroundWorker, вызывающий ConnectSequence, так как я думал, что это решит мою проблему.
Что я пробовал до сих пор:
- Использование потоков (System.Threads & BackgroundWorker)
- Превращение его свойства .Visible в true (.Показывает это, но приводит его в движение)
- Реализовал нашу ECF и вызвал ее в столько разных мест, сколько я смог найти, чтобы посмотреть, смогу ли я найти работу.
Но в итоге это не работает из-за этого цикла. И я понятия не имею, почему. Любая помощь приветствуется. Я так благодарен за всю вашу помощь. : D