![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| erm0l0v |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 11.1.2011 Репутация: 1 Всего: 1 |
У меня есть dll написанная на С#.
В ней создаётся поток, и уже в этом потоке мне необходимо создать окно. Создаю так:
но ShowDialog создает модальное окно, а мне нужно немодальное если создаю так:
То поток создающий окно завершается, и око тут же закрывается. Как мне из модального окна сделать немодальное, или как сделать так чтобы после Show() поток ожидал закрытия окна. |
||||
|
|||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
модальное окно - это то что блокирует доступ к другим. Если вы вызываете ShowDialog из другого потока, то получаете немодальное окно по отношению к другим потокам. Ну если хочется то можно сделать так:
но это наверно тоже самое получится визуально что и ShowDialog UDP: единственное зачем это может понадобится это отображение сплешскрина пока что-то делается.. но так у вас ничего не получится. Это сообщение отредактировал(а) jonie - 26.1.2011, 20:29 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| erm0l0v |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 11.1.2011 Репутация: 1 Всего: 1 |
Да действительно окно создается немодальное.
Получается мне для нормальной работы нудно создать модальное окно))) Как я понял для этого нужно установить свойство Owner, но о родительском окне я знаю только его handle |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
erm0l0v, нельзя так делать. У вас два окна будут в разных потоках, а значит в разных апартаментах. Уверен что возникнут проблемы. Создавайте модальной окно в основном потоке (где создаете "родителя")...
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| erm0l0v |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 11.1.2011 Репутация: 1 Всего: 1 |
Спасибо за помощь, но к сожалению в моей задаче это не возможно основное окно у меня создается в потоке MTA, а второе окно использует WPF который требует STA. Я не нашел другого для создания этого окна кроме как создания нового STA потока...
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 22 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |