0

PictureBox から継承する MyPictureBox を描画していますが、それをオーバーライドしてOnMouseClick
、引数を に設定します:(MouseEventArgs e)クリックするとマウスが調整
MyPictureBoxれますForm

どうすればできますか?

ありがとう

4

2 に答える 2

2

まず、渡されたマウス座標を画面にマップします。次に、フォームのクライアント座標にマップし直します。したがって、典型的なコードは次のようになります。

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e) {
        var pbox = (PictureBox)sender;
        var form = this;
        var screenPos = pbox.PointToScreen(e.Location);
        var formPos = form.PointToClient(screenPos);
        // etc..
    }

または短いバージョン:

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e) {
        var formPos = this.PointToClient(pictureBox1.PointToScreen(e.Location));
        // etc..
    }
于 2013-01-29T12:35:49.950 に答える
0

最も簡単な方法は、

this.PointToClient(Cursor.Position);

これにより、フォームに対するマウスカーソルの位置が取得されます。

于 2013-01-29T11:31:05.573 に答える