Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > PictureBox, MouseHover - MouseLeave


Автор: tit0 30.11.2009, 18:13
Здравствуйте. Пишу программы VC++2008 winforms. Есть на форме PictureBox. Как сделать так чтобы рисунок на форме менялся
при наведениии на него мышью(Hover) и обратно(Leave).

Я делал примерно так...hover :
Код

                // 
                // PictureBox
                //            
                this->PictureBox->ImageLocation = "D:\\путь\\Рисунок_1.png";
                this->PictureBox->Load();
                this->PictureBox->Location = System::Drawing::Point(763, 12);
                this->PictureBox->Name = L"PictureBox";
                this->PictureBox->Size = System::Drawing::Size(20, 20);
                this->PictureBox->TabIndex = 8;
                this->PictureBox->TabStop = false;
                this->PictureBox->MouseHover += gcnew System::EventHandler(this, &hMainForm::imgBoxHover);

                // Event
                imgBoxHover(System::Object^  sender, System::EventArgs^  e){
                    this->PictureBox->ImageLocation = "D:\\путь\\Рисунок_2.png";
                    this->PictureBox->Load();
                }


Этот способ даже в моих неопытных глазах кажется варварским)) Во первых, есть задержка
примерно секунду, перед тем как рисунок изменится. Во вторых, он должен лежать только 
там где вы его указали ImageLocation = "D:\\путь\\Рисунок_1.png". Есть ли другие способы?

Автор: Cheloveck 30.11.2009, 23:22
Цитата(tit0 @  30.11.2009,  19:13 Найти цитируемый пост)
Пишу программы VC++2008 winforms. 

Так и тему создавай в соответствующем разделе. 

В любом случае тебе надо ховер обрабатывать. Но менять только на первое сообщение, потом игнорить, пока не уйдёт курсор. Файл засунь в ресурсы и загрузи во время запуска программы, тогда на отрисовку уйдёт какая-то доля секунды.

Автор: bsa 30.11.2009, 23:51

M
bsa
tit0, WinForms это .Net

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)