0
private void lineGraph1_MouseEnter(object sender, EventArgs e)
        {
            MessageBox.Show("test");
        }

コントロール領域の上/上にマウスを移動すると、メッセージが表示されます。ここからコントロール dll をダウンロードしました。

http://www.codeproject.com/Articles/274318/Line-Graph-Component-in-Csharp

デモをダウンロードし、そこで dll ファイルを使用しました。Form1にコントロールがあり、次にForm1デザイナーのコントロールでマウスプロパティイベントを右クリックし、Mouse Enterをダブルクリックしましたが、コントロールの上にマウスを移動しても何も起こりません。

私は何を間違えましたか?

4

2 に答える 2

1

メソッドを追加しても、それ自体では何もしません。次のように、イベントハンドラーとして追加する必要があります

lineGraph1.MouseEnter += new EventHandler(lineGraph1_MouseEnter);

フォーム エディターは、右上のイベント ドロップダウンから MouseEnter イベントを選択すると、これを行います。

于 2013-02-28T17:08:42.650 に答える
0

これは、LineGraph がそれ自体を制御できるためだと思います。たとえば、 onmouseenter イベントを PlotArea コントロールに直接配置すると、おそらく正常に動作します。

    public PlotArea()
    {
        this.SetStyle(ControlStyles.ResizeRedraw, true);
        this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
        this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
        this.SetStyle(ControlStyles.UserPaint, true);
        this.MouseEnter += new EventHandler(PlotArea_MouseEnter);
    }

    void PlotArea_MouseEnter(object sender, EventArgs e)
    {
        MessageBox.Show("test");
    }
于 2013-02-28T17:24:50.970 に答える