2

私は現在、クラスのメンバーを含むマトリックスを持っています。これには、furniture
オーバーライドFurnitureしたいPictureBoxメンバーがあり、それはOnMouseClickメソッド
です。どこでそれを行うのですか? クラスコード
で? そのようなメンバーをオーバーライドするための構文は何ですか?Furniture

4

3 に答える 3

2

オーバーライドすることを意味する場合は、カスタムクラスで他に行う場所はありません。

MyPictureBoxoriginalから派生した新しいクラスを作成しますPictureBox

例:

public class MyPictureBox : PictureBox {

    public override void OnMouseClick(...)  {
       //...
    }

}

その後、当然、フォームでこのオブジェクトを使用します。

Furniture.Controls.Add(new MyPictureBox ());

実際Furnitureにコントロールとは何かわからないので、これは単なる理論上の例です。

于 2013-01-29T10:22:36.170 に答える
0

次のコードを参照してください。

public class DerivedPictureBox: PictureBox
{
    protected override void OnMouseClick(MouseEventArgs e)
    {
        base.OnMouseClick(e);
    }
}

アプリケーションでDerivedPictureBoxを使用すると、この派生OnMouseClickメソッドが実行されます。

于 2013-01-29T10:21:44.993 に答える
0

クリックのみを検出したい場合は、PictureBox.MouseDown のハンドラーを追加するだけです。

これはデザイナで実行できます。画像ボックスを見つけてそのプロパティを確認し、[イベント] を選択してから、MouseDown ハンドラの名前を入力します。

これは実際に OnMouseClick をオーバーライドすることとは異なることに注意してください。

OnMouseClick をオーバーライドしたい理由は何ですか?

于 2013-01-29T10:21:41.803 に答える