2011-12-30 3 views
0

私はこの2時間前にGoogleで立ち往生していました。マウスの左ボタンをクリックするという事実を返す方法を見つけようとしています。クラス内でマウスクリックイベントを返すフォームではない

私はこれで私を助けるために何かを見つけることができませんどのようにこれまで、同様の何かがフォームを使用しているについて尋ねていますすべての人々。しかし、私はクラスでそれを取得しようとしているので、それは私を助けません。

それのための相続人コード:

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

私は真のMouseButtons.left =を試してみました。しかし...

この上の任意のヘルプをそれは...それの左側が常にproperthy、変数またはインデクサーであることを私に言って保持し、最後に私は、ブール値が可変でチェックされていますか?

は(Psが。私は作品を持っている現在のコードは。それだけではなく、私がクリックしたときのマウスオーバーで動作します。)

+0

試みたコードを投稿します。イベントへの定期購読、イベントdelegant、ectを投稿してください。 –

答えて

3

...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."); 
    } 
} 
+0

それはフォームの権利でのみ動作しますか?私はフォームのバックグラウンドコードで作業していない、私はクラスで働いています。それが私の必要なところです。 – Etarnalazure

+0

これは、MouseDownイベントを持つオブジェクトで動作します。 –

+0

それで、クラスでもうまくいくはずですか?やってみます。 – Etarnalazure

関連する問題