我的表单没有标题栏,所以我正在实现拖动代码
屏幕周围的整个表格。我使用下面的代码来做到这一点,这很好。
我的表单中有两个面板,PanelA
和PanelB
。在启动期间我展示
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;
}
}
答案 0 :(得分:1)
编辑:我意识到您不是在询问拖放,而是在屏幕上移动表单。 (感谢@Veer。)我已经编辑了你的问题,以帮助澄清这一点。拖放是完全不同的事情,因为它将信息从一个控件拖动到另一个控件。
我的答案的相同原则仍然适用,因为鼠标事件也在控制级别处理 - 您可能还需要处理来自PanelB
的鼠标事件。