Возврат события щелчка мышью в классе, а не в форме - PullRequest
0 голосов
/ 30 декабря 2011

Последние 2 часа я застрял в Google, пытаясь найти способ вернуть тот факт, что я щелкаю левой кнопкой мыши.

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

Вот код для него:

 private void MenuClick()
        {
            if (mousePosition.X >= 250 && mousePosition.X <= 500 && mousePosition.Y >= 100 && mousePosition.Y <= 150)
            {
                MessageBox.Show("Mouse Clicked");
            }
    }

Я пробовал MouseButtons.left = True.Но он постоянно говорит мне, что левая сторона всегда должна быть свойством, переменной или индексатором ... И в последний раз я проверял, что Bool - это переменная ...

Любая помощь по этому поводу?

(Ps. Текущий код у меня работает. Он работает только при наведении курсора мыши, а не при нажатии.)

1 Ответ

3 голосов
/ 30 декабря 2011

...should always be a property, variable or indexer... скорее всего означает, что вы используете оператор присваивания = вместо оператора сравнения ==. Кроме того, MouseButtons - это перечисление, а не логическое значение, поэтому вы должны сделать что-то вроде следующего:

e.Button == MouseButtons.Left

Имейте в виду, e.Button будет недоступен, если вы не захватываете событие щелчка внутри события, которое переходит в состояние мыши в e. Например, если вы захватили событие MouseDown в самой форме, вы бы обработали его следующим образом:

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    {
        MessageBox.Show("Left Clicked.");
    }
    else if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
        MessageBox.Show("Right Clicked.");
    }
} 
...