私はwinformsアプリケーションを持っています。内部には、1つのパネル(panel1)があり、このパネルの内側にボタンがある別のパネル(panel2)があります。 私はいくつかのボタンでマウスをかぶったときにpanel2を水平方向に動かしたいと思っています。 私はpanel2の各ボタンでこれを作っています。MouseMoveイベントでパネルを水平に移動
this.button4.MouseDown += new System.Windows.Forms.MouseEventHandler(this.btMouseDown);
this.button4.MouseMove += new System.Windows.Forms.MouseEventHandler(this.btMouseMove);
this.button4.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btMouseUp);
と
void btMouseMove(object sender, MouseEventArgs e)
{
if (_mouseDown)
panel2.Location = PointToClient(this.panel2.PointToScreen(new Point(e.X - _mousePos.X, e.Y - _mousePos.Y)));
}
void btMouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
_mouseDown = true;
_mousePos = new Point(e.X, e.Y);
}
}
void btMouseUp(object sender, MouseEventArgs e)
{
if (_mouseDown)
{
_mouseDown = false;
}
}
このコードは、パネル1の内側に正しくpanel2を移動し、私は水平方向にのみパネルを移動したい、そしてこのコードは、マウスの場所に移動します。私が代わりに
Point(e.X - _mousePos.X, e.Y - _mousePos.Y)
の
Point(e.X - _mousePos.X, 3)
を入れてみました。しかしpanel2が消えます。私はパネル1を水平方向に動かす方法を知りたいです。
ありがとうございます。
は、パネルが消える:(あなたが実際に移動したいん何 – uoah
を今あなたがパネル1、ないpanel2を移動している、作品ではありません –
申し訳ありませんが、悪いペースト、私インチソースコードpanel1はこの例ではpanel2です – uoah