0
私はpictureBoxのクリックイベントを持っています。私は、クリックの座標を取得し、tは円を描く試してください。クリックの座標で矩形を描く方法は?
private void pictureMain_Click(object sender, EventArgs e){
MouseEventArgs me = (MouseEventArgs)e;
Point coordinates = me.Location;
int x = coordinates.X;
int y = coordinates.Y;
// Create pen.
Pen blackPen = new Pen(Color.Red, 2);
// Create rectangle for ellipse.
Rectangle rect = new Rectangle(x, y, 50, 50);
g.DrawEllipse(blackPen, rect);
}
しかし、それは、ピクチャボックスの座標(x、y)で円を描くありません。円を別の場所に置きます。
'DrawEllipse'が実際に外接する四角形の内側に座って、驚くことではないが、楕円を描画します。クリック位置を中心とする矩形を描画したい場合は、 'gDrawRectangle(blackPen、xw/2、y - w/2、w、w);' int w = 50; 'を使います。 >> gはどこから来たのですか?キャッシュされたGraphicsオブジェクト?悪い、悪い、悪い。 >>場所コードMouseClickイベントに直接アクセスするには! ; >>ペンの廃棄を作成すると、gdiのリソースが漏れてしまいます! ' – TaW
これをコードの回答として設計できますか? – Daniel
いいえ、これは本当にあなたが本当に望むものを知るのに十分なほど明確ではありません(四角形は維持されますか?次にPaintイベントでのみ描画されます)。 – TaW