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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработчик колесика мыши 
:(
    Опции темы
Codegrammer
Дата 8.9.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Программирую на C#. Не могу найти обработчик MouseWheel в Properties. Как в таком случае быть? MS Visual Studio 2008
PM MAIL   Вверх
explorer
Дата 8.9.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если он хитро запрятан в самой IDE, то никто еще не отменял такой записи:
Код

 this.MouseWheel += new MouseEventHandler(ThisObject_MouseWheel); // лучше в конструкторе формы или контрола прописать
....
void ThisObject_MouseWheel(object sender, MouseEventArgs e)
{
 .... тело метода обработчика
}

--------------------
 
PM MAIL WWW ICQ   Вверх
Codegrammer
Дата 8.9.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо. Помогло smile
PM MAIL   Вверх
maxfox
  Дата 22.9.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите разобраться с обработчиком на колесо мыши!

я сделал на форме элемент panel, и хочу, чтобы событие колёсика обрабатывались, когда указатель находится над этой панелью.

-я добавил событие в конструктор:
(panel - я обозвал, как ViewPort1)
Код

  //this->ViewPort1->DoubleClick += gcnew System::EventHandler(this, &Form1::ViewPort1_DoubleClick); 
  this->ViewPort1->MouseWheel += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::ViewPort1_MouseWheel);   //вот это
  //this->ViewPort1->MouseMove += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::ViewPort1_MouseMove);

-ну, и сама функция:
Код

private: System::Void ViewPort1_MouseWheel(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
         {
             int rot = e->Delta;
             if(IvoCam.moveZnak!=rot){
                 IvoCam.moveZnak = rot;
                 IvoCam.posZspeed = 0.1;
             }
             label4->Text = L"aa";
             IvoCam.posZspeed+=0.1;
             if(rot<0)
             {         IvoCam.posZ-=IvoCam.posZspeed;
                        label3->Text = L"Weel UP";
             }else{     IvoCam.posZ+=IvoCam.posZspeed;    
                        label3->Text = L"Weel down";}
             ReDrawWin();
         }

в результате как то криво всё работает smile 
к примеру: когда курсор находится над панелью - то элементы label3, label4 - не обновляются!!!! как будто их нет в тексте!!
 - при этом когда курсор мыши находится вне границ панели - то всё работает (даже вне границ формы)
-и что шокирует больше всего - это то, что строчка кода IvoCam.posZspeed+=0.1; тоже не работает, когда курсор находится над панелью - и работает - кода курсор вне панели..
как это понимать??????
PM MAIL   Вверх
maxfox
Дата 23.9.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я вроде бы разобрался.. но всё же как то странно.
проблема оказалась в событии MouseMove, которое почему то срабатывает всё время, пока курсор находится над панелью - даже если не движется....
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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