トップ回答者
ピクチャーボックスの移動(C#)

質問
回答
-
MouseDown、MouseMove、MouseUp イベントをつかまえて、PictureBox を動かしてあげればいいと思います。(これが一番いい方法かどうかは分かりません。)
private Size szOrigin = Size.Empty; private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { szOrigin = new Size(e.X, e.Y); } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { pictureBox1.Location = Point.Subtract(panel1.PointToClient(Cursor.Position), szOrigin); } } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { szOrigin = Size.Empty; }
あとはドラッグ中にパネルの外に飛び出さないようにガードしてあげればいいのではないでしょうか。- 回答としてマーク 山本春海 2011年2月9日 1:56
-
一番良い方法かどうかわかりませんが、マウスが移動できる範囲(Rectangle )は計算できますから、それをCursor.Clipにセットすれば良いのではないでしょうか?
マウス・カーソルの移動可能領域を制限するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/388limitcursor/limitcursor.htmlあとはMouseDown、MouseMove、MouseUpイベントでPictureBoxを移動させればよいと思います。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/- 回答としてマーク 山本春海 2011年2月9日 1:56
すべての返信
-
MouseDown、MouseMove、MouseUp イベントをつかまえて、PictureBox を動かしてあげればいいと思います。(これが一番いい方法かどうかは分かりません。)
private Size szOrigin = Size.Empty; private void pictureBox1_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { szOrigin = new Size(e.X, e.Y); } } private void pictureBox1_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { pictureBox1.Location = Point.Subtract(panel1.PointToClient(Cursor.Position), szOrigin); } } private void pictureBox1_MouseUp(object sender, MouseEventArgs e) { szOrigin = Size.Empty; }
あとはドラッグ中にパネルの外に飛び出さないようにガードしてあげればいいのではないでしょうか。- 回答としてマーク 山本春海 2011年2月9日 1:56
-
一番良い方法かどうかわかりませんが、マウスが移動できる範囲(Rectangle )は計算できますから、それをCursor.Clipにセットすれば良いのではないでしょうか?
マウス・カーソルの移動可能領域を制限するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/388limitcursor/limitcursor.htmlあとはMouseDown、MouseMove、MouseUpイベントでPictureBoxを移動させればよいと思います。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/- 回答としてマーク 山本春海 2011年2月9日 1:56