[英]Problem with moving a winform using C#
我的表单没有标题栏,因此我正在实现代码以在屏幕上拖动整个表单。 我正在使用下面的代码来做到这一点,它工作正常。 我的表单中有两个面板PanelA
和PanelB
。 在启动过程中,我向PanelA
展示了拖动效果PanelA
地方。 后来,当用户点击该按钮PanelA
,我需要让PanelA
无形的,并显示PanelB
然而,在拖动时不工作PanelB
所示。 这是什么问题
private void SerialPortScanner_MouseUp(object sender, MouseEventArgs e)
{
this.drag = false;
}
private void SerialPortScanner_MouseDown(object sender, MouseEventArgs e)
{
this.drag = true;
this.start_point = new Point(e.X, e.Y);
}
private void SerialPortScanner_MouseMove(object sender, MouseEventArgs e)
{
if (this.drag)
{
Point p1 = new Point(e.X, e.Y);
Point p2 = this.PointToScreen(p1);
Point p3 = new Point(p2.X - this.start_point.X,
p2.Y - this.start_point.Y);
this.Location = p3;
}
}
编辑:我已经意识到您并不是在问拖放 ,而是在屏幕上移动表单。 (感谢@Veer。)我已经编辑了您的问题,以帮助阐明这一点。 拖放是完全不同的事情,因为它将信息从一个控件拖放到另一个控件。
不过,我的答案仍然适用相同的原则,因为鼠标事件也在控件级别进行处理-您可能还需要处理PanelB
的鼠标事件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.