Посмотрите, удерживается ли левая кнопка мыши в событии OnMouseMove.

Как определить, удерживается ли левая кнопка мыши в событии OnMouseMove для элемента управления?


person SchwartzE    schedule 02.02.2010    source источник
comment
на какой платформе? решение отличается для WinForms, Silverlight и WPF и т. д.   -  person Muad'Dib    schedule 02.02.2010


Ответы (2)


Ваш обработчик событий для события OnMouseMove должен получить MouseEventArgs, который должен сообщить вам, нажата ли левая кнопка.

private void mouseMoveEventHandler(object sender, MouseEventArgs e)
{
   if(e.Button == MouseButtons.Left)
   {
     //do left stuff
   }
   else 
   {
     // do other stuff
   }
}
person Nifle    schedule 02.02.2010

Просто установите логическое значение в значение true, когда левая кнопка мыши удерживается, и установите его в значение false, когда оно будет отпущено.

Если вы проверите состояние логического значения при запуске события OnMouseMove, вы сможете узнать, удерживается ли оно нажатым или нет.

Псевдокод:

private bool isDown;

MouseDown()
{
   isDown = true;
}

MouseUp()
{
   isDown = false;
}
OnMouseMove()
{
   if(isDown)
   {
       //Do something...
   }
}
person Jamie Keeling    schedule 02.02.2010