Visual C # Window Behaver - PullRequest
       23

Visual C # Window Behaver

1 голос
/ 15 января 2011

У меня есть форма, которая создает новую форму, которую я уже создал, используя

statuswindow statwin = new statuswindow();
statwin.ShowDialog();
return statwin;

Этот код находится в функции.Проблема в том, что когда я запускаю функцию в другом коде, следующая строка кода не запускается до тех пор, пока пользователь не закроет новое инстансированное окно. Я предполагаю, что это побочный эффект использования ShowDialog(), есть лиспособ заставить его использовать тот же самый поведение (будучи верхним, а не выбирать другое главное окно), в то же время позволяя запускать код главной формы?

Обновление: Хотя Показать ();будет работать, мне нужно сделать окно похожим на диалоговое окно, чтобы оно всегда было над другим окном и всегда было активным выбранным окном.

Ответы [ 2 ]

3 голосов
/ 15 января 2011

Метод ShowDialog для отображения окна показывает его в виде диалога, который является механизмом блокировки в C # /. Net. Если вы хотите просто отобразить окно и не вызывать блокировку работающего кода до его закрытия, вы можете использовать функцию window.Show ().

В вашем коде:

startwin.Show();

Это приведет к тому, что форма startwin станет видимой для пользователя, и сработает событие startwin.VisibleChanged, а также событие startwin.Load.

1 голос
/ 15 января 2011

Чтобы новое окно всегда находилось сверху, вы можете установить флаг самого верхнего окна в свойствах формы.Чтобы заставить окно работать в отдельном потоке, сначала создайте поток, затем создайте окно из этого потока.Есть также «модальные приложения» и «системные модальные» флаги окна Win32, но я не знаю, выставлены ли они на WinForms или нет - посмотрите свойства формы!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...