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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрытие основной формы программы 
:(
    Опции темы
#Sage
Дата 3.8.2005, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть ли возможность скрыть/предотвратить появление окна программы ещё до того как оно прорисовалось? Т.е. просто дать комманду не прорисовывать основную форму. Я нашёл выход перегрузив OnPaint и там задав Form.Visible = false, но хотелось бы, чтобы вообще набыло поползновений что-либо прорисовывать, т.к. в моём варианте окно, хоть и на сотую секунды, но всё-таки видно.
Заранее спасибо за помощь.
PM MAIL WWW   Вверх
-ser-
Дата 3.8.2005, 05:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 13



Здесь не так все просто как кажется на первый взгляд.
В данном случае необходимо отделить жизненные циклы приложения от его формы, после чего можно
делать форму невидимой. а для этого необходимо создать новый класс в котором переопределяется точка старта приложения, т.е. Main().

вот как раз на эту тему

http://msdn.microsoft.com/library/default....tsinception.asp

Это сообщение отредактировал(а) -ser- - 3.8.2005, 05:44


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
Domestic Cat
Дата 3.8.2005, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



А почему бы в конструкторе не указать Visible=false?


--------------------

PM   Вверх
mr.DUDA
Дата 3.8.2005, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


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

Репутация: 24
Всего: 232



Можно просто убрать Application.Run (form) из метода Main. Или, как говорит Domestic Cat (либо в дизайнере форм) поставить св-во Visible=false.


--------------------
user posted image
PM MAIL WWW   Вверх
-ser-
Дата 3.8.2005, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 4
Всего: 13



что-то я не видел в дизайнере форм для формы св-во Visible, равно как не получится поставить это св-во в конструкторе для формы.


Цитата
убрать Application.Run (form) из метода Main

здесь можно согласиться, только наверно правильнее убрать 'form' из Application.Run (form), но подозреваю, это уже будет другого рода приложение. и чтобы дискутировать правильно ли это, желательно знать причину зачем вообще все это понадобилось.


Это сообщение отредактировал(а) -ser- - 3.8.2005, 08:08


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
Domestic Cat
Дата 3.8.2005, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Насчет Visible мы погорячились, но вот такой код в конструкторе сделает свое дело
Код


            this.WindowState = FormWindowState.Minimized;
            this.ShowInTaskbar = false;



--------------------

PM   Вверх
borlik
Дата 4.8.2005, 15:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Лично у меня при возникновении такой проблемы было 2 решения:
1 - импортировать winapi функцию ShowWindow (если что, смотри pinvoke.net) - лично у меня окно ни разу не мелькнуло при использовании этой функции в отличии от form.hide, хотя тоже не панацея.
2-й случай, если из программы в formLoad запускается дилог проврки пароля и он не совпадает и не охота, что бы при этом при закрытии главное окно моргало, то делаем this.Close();return;
но это уже совет для начинающих пионеров smile
  Вверх
Domestic Cat
Дата 4.8.2005, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5452
Регистрация: 3.5.2004
Где: Dallas, US

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



Цитата(borlik @ 4.8.2005, 06:17)
1 - импортировать winapi функцию ShowWindow (если что, смотри pinvoke.net) - лично у меня окно ни разу не мелькнуло при использовании этой функции в отличии от form.hide, хотя тоже не панацея.

Хм, винапи ради такой мелочи?




--------------------

PM   Вверх
borlik
Дата 9.8.2005, 15:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вы так говорите про винапи, будто это какое-то чудо, которое нужно применять в исключительных случаях (не в тему: например при работе с КОМ портом однозначно лучше использовать винапи), хотя на самом деле добаляется всего лишь 2 строки
  Вверх
Kurt
Дата 9.8.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Модератор: Не отклоняемся от заданного курса (темы обсуждения) smile


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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

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



Цитата(borlik @ 9.8.2005, 18:05)
Вы так говорите про винапи, будто это какое-то чудо, которое нужно применять в исключительных случаях

Так и есть, необходимо стараться, чтобы код был переносимым. Винапи скорее не чудо, а окаменевшая реликвия.

По сабжу согласен с Domestic Cat
Код

  this.WindowState = FormWindowState.Minimized;
  this.ShowInTaskbar = false;


Это отпимальное решение, зачем заморачиваться?


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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