我有一個winforms應用程序。在裏面,我有一個面板(面板1),在面板內部還有另一個面板(面板2),裏面有按鈕。 當我在某個按鈕中輸入內容時,我想在panel1內水平移動panel2。 我在panel2內的每個按鈕中都做了這個。c#使用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;
}
}
此代碼正確移動是Panel2的PANEL1裏面,但我想在面板只有水平移動,而這種代碼移動到鼠標位置。我試圖把
Point(e.X - _mousePos.X, 3)
而不是
Point(e.X - _mousePos.X, e.Y - _mousePos.Y)
不過是Panel2消失。我想知道如何僅在水平方向移動面板1內的面板2。
非常感謝。
不工作,面板消失:( – uoah
什麼你真的想移動現在你移動PANEL1,不 –
不好意思,不好貼是Panel2,在我的? sourcecode panel1在本例中是panel2 – uoah