Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как отобразить форму немодально, но чтобы она не исчезала. 
:(
    Опции темы
Exception
Дата 18.4.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 5
Всего: 186



Я в коде создаю форму:
Код

Dim frm As New MyForm
MyForm.Show()
'Дальнейший код

, однако форма не остается висеть на экране, а появляется и исчезает.
Если я ее показываю модально:
Код

Dim frm AS New MyForm
MyForm.ShowDialog()
'Дальнейший код не выполняется

Возможно, мой вопрос покажется вам глупым, он в .нете я всего пару месяцев, а до этого писал на VB6.
Добавлено @ 12:19
На всяк. случай поясню, что форма находится в Class Library, как и вызывающий ее код.
PM   Вверх
arilou
Дата 18.4.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: нет
Всего: 61



Цитата(Run @ 18.4.2005, 12:11)
однако форма не остается висеть на экране, а появляется и исчезает

Проверь, не выолняется ли у тебя где-нить после MyForm.Show() MyForm = Nothing


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Kurt
Дата 18.4.2005, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: 2
Всего: 36



Run-time error
Создай отдельный проект, в к-м сделай простую форму с одной кнопкой. По кнопке немодально показывай другую форму. Больше ничего не добавляй.
Проблема остается?


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Exception
Дата 19.4.2005, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 5
Всего: 186



Цитата(arilou @ 18.4.2005, 13:21)
Проверь, не выолняется ли у тебя где-нить после MyForm.Show() MyForm = Nothing


Цитата(Kurt @ 18.4.2005, 14:41)
Создай отдельный проект, в к-м сделай простую форму с одной кнопкой. По кнопке немодально показывай другую форму. Больше ничего не добавляй.
Проблема остается?

Нет, проблема не в этом. Дело было так:
1) Создаю Class Library.
2) В нее добавляю форму.
3) При вызове одного из методов класса происходит Dim frm as new MyForm и frm.Show().
Но форма появляется и сразу исчезает. Впрочем, в принципе это наверно происходит из-за того, что вызывающее метод класса приложение - консольноеи возможон я что-то недосмотрел...
ЗЫ Впрочем, теперь проблема уже не особо важна - я добавил в класс метод для модального отображения формы и чуть перепроектировал приложение.
PM   Вверх
arilou
Дата 19.4.2005, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: нет
Всего: 61



Цитата(Run @ 19.4.2005, 10:49)
3) При вызове одного из методов класса происходит Dim frm as new MyForm и frm.Show().

Скорее всего, проблема тут вот в чем - поскольку ты определяешь Dim frm as new MyForm внутри метода класса, то при выходе из метода frm убирается сборщиком мусора, т.к. обнуляется кол-во ссылок.



--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
Exception
Дата 20.4.2005, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 5
Всего: 186



Цитата(arilou @ 19.4.2005, 12:23)
при выходе из метода frm убирается сборщиком мусора

А можно как-нибудь запретить GC убирать объект?
PM   Вверх
jfx
Дата 20.4.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 18.10.2004

Репутация: нет
Всего: 1



либо в конструкторе класса формы что-то...
Добавлено @ 12:16
Цитата
А можно как-нибудь запретить GC убирать объект?

Запретить наверное можно но точно не нужно.
Лучьше объяви свою форму на уровень выше.
PM MAIL   Вверх
Gazon
Дата 20.4.2005, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 128
Регистрация: 9.1.2005

Репутация: нет
Всего: 8



Цитата
Но форма появляется и сразу исчезает. Впрочем, в принципе это наверно происходит из-за того, что вызывающее метод класса приложение - консольноеи возможон я что-то недосмотрел...

Цитата
При вызове одного из методов класса

И конечно наверняка ты его вызываешь из ф-ии Main?
Просто когда диалог показывается как немодальный, то метод, из которого вызвали этот диалог, продолжает выполнение. Таким образом ты из метода Main показываешь форму, метод Main продолжает выполнение, завершается, и все закрывается, включая форму.
--------------------
Чем больше узнаешь, тем больше не знаешь, но до истины всегда можно добраться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.