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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как вызвать класс в классе формы 
:(
    Опции темы
Ceiceron
Дата 1.2.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

        [STAThread]
        static void Main()
        {
            Form1 form = new Form1();
            MyMessageFilter myMessageFilter = new MyMessageFilter(form);
            Application.RemoveMessageFilter(myMessageFilter);
            Application.Run(new Form1());
         }


разве не здесь затесалась ошибка?
если мы создали экземпляр ксласса Form1 form, проинициализировали им фильтр сообщений, то не его ли надо передавать на запуск приложения?
т.е. вместо Application.Run(new Form1()); надо написать Application.Run(form);
PM MAIL   Вверх
styu
Дата 1.2.2010, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ceiceron,  К сожалению, это тоже не помогло
PM MAIL   Вверх
Ceiceron
Дата 1.2.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Естественно, потому что надо внимательно читать, что пишут другие.
у вас в коде есть строчка: 
Код

Application.RemoveMessageFilter(myMessageFilter);
Application.Run(form);

Вы не добавив свой фильтр, его удаляете, как думаете будет у системы какая либо реакция?
замените эту строку на
Код

Application.AddMessageFilter(myMessageFilter);
Application.Run(form);


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

Это сообщение отредактировал(а) Ceiceron - 1.2.2010, 23:21
PM MAIL   Вверх
styu
Дата 1.2.2010, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ceiceron, 
Вы правы, переписала
Код

Application.RemoveMessageFilter(myMessageFilter);

на 
Код

Application.AddMessageFilter(myMessageFilter);

все заработало, но с формой творится что -то страшное, она грузится минут 5, потом замирает и с ней уже ничего сделать нельзя, кроме как нажать кнопку del, на нее единственную она только и реагирует
PM MAIL   Вверх
Ceiceron
Дата 2.2.2010, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



styu, зря вы взялись делать перехват событий на уровне сообщений окна. 
Воспользуйтесь советом KelTron это будет работать эффективнее и вам более понятно.

Это сообщение отредактировал(а) Ceiceron - 2.2.2010, 00:19
PM MAIL   Вверх
PaZ1T1V
Дата 2.2.2010, 06:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да, забыл сказать, а точнее и не думал даже о том, что остальная обработка сообщений будет игнорирована, тут выхода два: или делать через обработчик нужного контрола, как предлагал сначала я а потом KelTron или обрабатывать все в классе вплоть до последней буковки и нажатия мыши, причем нажатие должно обрабатываться по разному на каждом контроле....как это сделать я не знаю... 
--------------------
[size=8]Atention please!!![/size]
[size=6]Кривые руки[/size]
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
styu
Дата 2.2.2010, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пока боюсь всех обнадеживать, но на работе форма грузится нормально, достаточно шустро, дома она здорово зависала. Не знаю связано ли это как -то с тем, что у меня на работе стоит VS2003, а дома VS2005. И на работе форма ведет себя адекватно и даже при нажатии на клавишу Del, появляется окошко с вопросом, но как-то не стабильно работает, как мне кажется, реакция на разрешение на удаление и отказ от него, завтра еще буду тестировать
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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