2012-04-19 5 views
1

В форме у меня есть одна кнопка, которая имеет функциональность для сбора некоторых данных (щелчком мыши) Родительское приложение.Подождите, пока диалоговое окно модели не будет закрыто в vb.net

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

Требование здесь открыть немодальный диалог и подождать, пока он не закроется. другой мудрый он идет дальше и выполняет функции ниже.

Другой вариант может быть открытая форма как модальная и во время выполнения измените ее на modaless.

Но как это сделать? :)

+0

примечание: modal not model – Reniuz

+0

Являются ли эти окна одним и тем же приложением? Ваше описание немного расплывчато, что может означать отдельные процессы. –

+2

Это может быть «модальный», но это определенно «немощный». –

ответ

3

Предполагая, что WinForms ... когда вы создаете диалог, зацепите его за событие FormClosed. Когда он будет закрыт, это событие будет срабатывать, и ваша оригинальная форма будет извещена (предполагается, что обработчик события находится в исходной форме).

Что-то вроде:

class MainForm : Form 
{ 
    private ChildForm _childForm; 

    public void ShowChildForm() 
    { 
     _childForm = new ChildForm(); 
     _childForm.FormClosed += (s, e) => MessageBox.Show("Child was closed."); 
     _childForm.Show(); 
    } 
} 

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

_childForm.ShowDialog(); 

Какие будет блокироваться в основной форме до тех пор, пока дочерняя форма не будет закрыта. Не нужно подключать закрытое событие.

+0

_childForm.FormClosed + = (s, e) Как добавить обработчик события в родительском, если дочерний объект закрыт? – Sandip

+0

Не использовать _childForm.ShowDialog(); потому что у меня есть одна кнопка, которая имеет функциональность для сбора некоторых данных с помощью щелчка мыши. Родительское приложение. – Sandip

+0

Я не уверен, что вы подразумеваете под этим щелчком мыши, можете ли вы опубликовать код, чтобы показать, почему вы не можете использовать ShowDialog? Это стандартный метод для использования в этой ситуации. –

-1

Ваш вопрос не имеет полный смысл, но, чтобы попытаться ответить на него так далеко

Вы можете показать модальный диалог с помощью

Form1.ShowDialog 

Если после этого нужно показать другой модальный диалог можно сделать это:

Form2.ShowDialog 

Вы не можете показать диалог покадрово когда модальный показан один из них.

Смежные вопросы