Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > ShowDialog и Show


Автор: DissDoc 22.4.2010, 17:29
Всем привет. Появилась проблема. Опишу что есть
Есть Главное окно Form
В нем вызывается еще окно как MyMainForm.Show()
В котором вызывается дочернее окно как ChildForm.ShowDialog()

Проблема в том, что при появлении дочернего окна ChildForm блокируется главное окно Form и MyMainForm
А мне не нужно, чтобы блокировалось окно Form!

Оно не совсем блокируется... Оно как бы не перерисовывается. 
Нужно ChildForm потаскать, чтобы перерисовалась форма Form...  smile 

Как сделать так, чтобы Form была как бы "свободной", как при запуске Show()

Если дочернее окно запускать как ChildForm.Show(), то в MyMainForm весь процесс продолжается не дожидаясь закрытия ChildForm. ЧТо тоже неверно.
Дайте совет как быть?

Автор: Heinzz 22.4.2010, 19:24
мой вариант
Код

private void button1_Click(object sender, EventArgs e)
        {
            this.Enabled = false;
            childForm cf = new childForm();
            cf.Show();
            cf.FormClosed += new FormClosedEventHandler(cf_FormClosed);
        }

        void cf_FormClosed(object sender, FormClosedEventArgs e)
        {
            this.Enabled = true;
        }


те на время запуска ChildForm MyMainForm отключена, а Form доступна. Как только ChildForm закрыта -MyMainForm снова включена

Автор: DissDoc 22.4.2010, 22:43
Эх,именно так у меня сейчас все и работает...
Не очень удобно к сожалению...
Но похоже самый оптимальный вариант... Я не хотел его писать, чтобы послушать идеи других людей. Но мысли сошлись

Автор: Heinzz 23.4.2010, 14:37
а какие Вы видете минусы в таком подходе?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)