2009-07-27 7 views
6

まず、マウスホイールイベントはVisual Studio 2008のイベントペインに表示されず、非常に迷惑です。C#WindowsフォームでMouseWheelイベントを発生させることはできません

でも、私は正しい形式は、オンライン見つけ、そして私のコードにこれを書いた:

private void Form1_MouseWheel(object sender, MouseEventArgs e) 
    { 
     Debug.WriteLine("Foo"); 
    } 

...マウスホイールを回転させたときに、私は何の応答を取得していないよ、そこから。

私のコードのメインクラスエリアでこれをやっています。デザイナーは、フォーム/ウィンドウ/何でもマウスがフォーカスを失うことはありません。

namespace BlahBlah 
{ 
    public partial class Form1 : Form 
    { 

とコントラストによって、私は右のマウスホイール1の上に、このメソッドを持っており、それが正常に動作します:

private void Form1_MouseClick(object sender, MouseEventArgs e) 
    { 
     Debug.WriteLine("Foo"); 
    } 

私は推測していた場合、私はコードを正しく結ぶていないよと思っていますフォーム(別名:デザイナーのイベントパネルでこのイベントを追加した場合、ビジュアルスタジオが私のためにやるすべてのもの)。しかし、私は間違っているか、ちょっとばかげたエラーを作り出している可能性があります。

マウスホイールを回転させたときに何らかの応答が得られますか?ありがとう!

答えて

11

マウスホイールイベントを設定する必要があります。

Form1のコンストラクタにこれを追加(InitalizeComponents後();)

this.MouseWheel+= new MouseEventHandler(Form1_MouseWheel); 
+0

これは、ありがとうございます! Sidequestion:私は私のMouseMoveメソッド(this.MouseMove + = Form1_MouseMove;)も持っていますが、MouseClickではありません。なぜそれが必要ないのですか? – cksubs

+1

これはマウスクリックに反応しますか?マウスクリックに反応する必要がない場合、マウスクリックは必要ありません。いくつかのコントロールは自動的にマウスクリックイベントをリンクしています(スクロールなどのため)。これは達成しようとしているものによって異なります。 – Kurisu

+0

私はちょうど私のMouseClickメソッドは、 ".... + = ...."のコンストラクタの必要性なしで動作(マウスクリックで発生)を意味します。だからこそ私はMouseWheelのようなものを追加することを忘れてしまった、MouseClickはうまくいった。 – cksubs

1

特定のイベントの購読方法はわかりませんが、代わりにフォーム上の適切な方法を上書きできます。

6

私はコメントで応答するのに十分な評判を持っていないが、あなたの側の質問への答えは、代表者がする必要がないということですセットアップしてください。ただし、プロパティペインでダブルクリックして作成すると、コードが自動的に生成され、InitializeComponentメソッドの* .designer.csファイルに配置されます。

+1

ええと、designer.csファイルを見て、地域を見ると、コードジェネレーションがこれらのイベントを結ぶ作業を少し行いました。 –

1

イベントに登録するのではなく、OnMouseWheelメンバー関数をオーバーライドするのが最善です。例:

public class MyFrm : Form 
{ 
    protected override void OnMouseWheel(MouseEventArgs e) 
    { 
     /*Handle the mouse wheel here*/ 
     base.OnMouseWheel(e); 
    } 
} 
+0

それはなぜより良いですか? –

+1

@JonofAllTradesパフォーマンスが向上し、柔軟性が向上します(イベントを購読しているデリゲートの前で作業できます)。 http://stackoverflow.com/questions/159317/when-should-you-override-onevent-as-opposed-to-subscribing-to-theevent-when-inh –

関連する問題