none
Считывание при нажатой кнопки и движении мыши RRS feed

  • Вопрос

  • Здраствуйте. Помогите решить проблему есть движение мыши работает в этой же функции отлавливаеться нажатие правой кнопки мыши, но функция не срабатывает. Помогите.
    public void form_MouseMove(object sender, MouseEventArgs e)
                    {
                        //throw new NotImplementedException();
                        pictureBox.Cursor = Cursors.Hand;
                        //MessageBox.Show("ok");
                        //ThreeDButt0on inputButton;
                        koordinati[0] = e.X;
                        koordinati[1] = e.Y;
                        
                        switch (e.Button) 
                                {
                                case MouseButtons.Right:
                                koordinati[2] = koordinati[2] + 1;
                                         break;
                                default: 
                                         break;
                                }
                    }
        }
    }

    21 сентября 2014 г. 15:34

Ответы

  • Добрый день,

    не путайте события. MouseMove срабатывает при движении мыши. И свойство e.Buttons содержит нажатую в данный момент кнопку. Для перехвата самого события нажатия кнопки используйте MouseDown или MouseClick. Сравните поведение:

            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                if(e.Button == System.Windows.Forms.MouseButtons.Right) // нажата правая кнопка
                {
                    label1.Text = "Move in " + e.X + " " + e.Y;
                }
            }
    
            private void Form1_MouseDown(object sender, MouseEventArgs e)
            {
                label1.Text = "Down in " + e.X + " " + e.Y;
            }
    
            private void Form1_MouseClick(object sender, MouseEventArgs e)
            {
                label1.Text = "Click in " + e.X + " " + e.Y;
            }

    22 сентября 2014 г. 0:41