У меня есть приложение winforms.Внутри у меня есть одна панель (панель 1), а внутри этой панели другая панель (панель 2) с кнопками внутри.Я хочу перемещать панель 2 горизонтально внутри панели 1, когда я нажимаю на какую-то кнопку.Я сделал это в каждой кнопке внутри панели 2.
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;
}
}
Этот код правильно перемещает панель2 внутри панели1, но я хочу перемещать панель только горизонтально,и этот код перемещается в местоположение мыши.Я пытался поставить
Point(e.X - _mousePos.X, 3)
вместо
Point(e.X - _mousePos.X, e.Y - _mousePos.Y)
Но панель 2 исчезает.Я хотел бы знать, как перемещать панель 2 внутри панели 1 только по горизонтали.
Большое спасибо.