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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в вызываемой форме определить, что она onLoad? 
:(
    Опции темы
Riccon
Дата 16.12.2005, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Собственно, воспрос.
Дело в том, что если в конструктор вызываемой формы после вызова InitializeComponent(); написать MessageBox.Show("qqqq"); то - сначала выскочит сообщение "qqqq", а потом прорисуется и форма. Как сделать так, что бы форма загрузалась вперёд того, как будут выполнены какие-то другие действия?


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


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


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

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



Если в конструкторе формы делаешь какие-либо любые действия, выполняющиеся визуально, то эти самые действия ты увидишь до того как форма будет окончательно загружена и показана. Это относится и к MessageBox в конструкторе формы.


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


Шустрый
*


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

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



Понятно. Тогда, как мне поступить, чтобы инициализировать нужный процесс только после окончательной загрузrи и отображения формы на экране? Вероятно Event какой-то должен быть?
PM MAIL   Вверх
Empirik
Дата 17.12.2005, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть такое замечательное событие у формы Load, оно вызывается когда форма загружена. Так же есть событие у фомы VisibleChanged- оно вызывается когда форма показывается или скрывается (а так, читай MSDN, там все это написано)


Это сообщение отредактировал(а) Empirik - 17.12.2005, 08:59
--------------------
Постоянно удивляюсь человеческой фантазии напридумывают гаджетов
PM MAIL WWW ICQ   Вверх
Riccon
Дата 17.12.2005, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Form.Load срабатывает перед загрузкой формы. Да и процессы при VisibleChanged отрабатывает раньше, чем форма рисуется на экране.

Туплю чего-то. Привидите пример, пожалуйста.

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


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


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

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



Есть ещё событие Activated. Правда, генерируется оно каждый раз при заходе на форму, но можно это обойти, добавив флаг типа bool first.


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


Андрей
*


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

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



Riccon
Эту проблему можно решить так,
в обработчике Activated формы написать подобный код

Код

private void Form1_Activated(object sender, System.EventArgs e)
        {
            MessageBox.Show("сообщение");
            this.Activated -= new System.EventHandler(this.Form1_Activated);
            this.Focus();
        }


как видно после выполнения этого кода, обработчик события Activated удалится
мне кажется это самое простое решение !

удачи !

Это сообщение отредактировал(а) andrx - 17.12.2005, 16:47
--------------------
Лучше скажи мало, но хорошо. (Козьма Прутков)
PM MAIL ICQ   Вверх
Riccon
Дата 18.12.2005, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо огромное всем за ответы, получилось.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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