RT~
创建几个lable,然后每个lable之间画线连接,如何实现拖拽lable的同时,直线也跟着联动~~~急急急求解,lable的拖拽移动问题我已经解决了,关键是怎么让线跟着联动~~~
lable拖拽代码如下是:
lable1.MouseDown += new MouseEventHandler(Switch_MouseDown);
lable1.MouseMove += new MouseEventHandler(Switch_MouseMove);
private Point m_lastPoint;
private Point m_lastMPoint;
private void lable1_MouseDown(object sender, MouseEventArgs e)
{
m_lastMPoint = Control.MousePosition;
m_lastPoint = (sender as Label).Location;
}
private void lable1_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
((Label)sender).Location = new Point(m_lastPoint.X + Control.MousePosition.X - m_lastMPoint.X, m_lastPoint.Y + Control.MousePosition.Y - m_lastMPoint.Y);
}
}
提供个简单的方法:把这个控件全部画到一个panel里面,拖动panel,所有控件都会跟着联动了。。。
也可以直接用代码控制panel位置,这样也还是联动的
窗体载入时,我在Paint添加下面的事件,这样窗体载入时,几个lable就连上线了,关键不知道怎么联动,求大神解答一二
private void DrawLine(object sender, PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
foreach (Line one in GetAllLines())
{
int x1 = GetSwitch(one.Linetop).Loc_x;
int y1 = GetSwitch(one.Linetop).Loc_y;
int x2 = GetSwitch(one.Lineend).Loc_x;
int y2 = GetSwitch(one.Lineend).Loc_y;
g.DrawLine(GlobalVariable.penGX, new Point(x1, y1), new Point(x2, y2));
}
}
不是太明白楼上的意思,求大牛给点思路和细节,跪谢