winform 窗体移动事件 同时移动两个窗体 20
如何同时移动两个窗体Form1Form2点击窗体1的鼠标按下事件触发移动API在这个时候如何移动在移动窗体1的时候2也跟着移动PS不用计时器侦测可这样做就只有当释放鼠标左...
如何同时移动两个窗体 Form1 Form2 点击窗体1的鼠标按下事件触发移动API 在这个时候如何移动在移动窗体1的时候2也跟着移动
PS 不用计时器侦测
可这样做就只有当释放鼠标左键的时候窗体2才能移动 就没有跟随效果了 展开
PS 不用计时器侦测
可这样做就只有当释放鼠标左键的时候窗体2才能移动 就没有跟随效果了 展开
4个回答
展开全部
在Form1的cs代码中,加上如下代码
Public Form2 f2=new Form2();//在处理函数外,全局变量
f2.Show();//需要时调用这句显示Form2
//这样f2就像是Form1中的一个组件了
在Form1的移动事件中加上如下代码
try
{
int x=f2.Top-this.Top;//计算出俩框的竖直距离
int y=f2.Left-this.Left;//计算出俩框的水平距离
f2.Top=this.Top+x;
f2.Left=this.Left+y;
//搞定、、楼下的吧俩框的位置限定死了..
}catch{}
Public Form2 f2=new Form2();//在处理函数外,全局变量
f2.Show();//需要时调用这句显示Form2
//这样f2就像是Form1中的一个组件了
在Form1的移动事件中加上如下代码
try
{
int x=f2.Top-this.Top;//计算出俩框的竖直距离
int y=f2.Left-this.Left;//计算出俩框的水平距离
f2.Top=this.Top+x;
f2.Left=this.Left+y;
//搞定、、楼下的吧俩框的位置限定死了..
}catch{}
展开全部
很简单啊 只要在Form1中加个timer 然后在timer1_Tick()事件中加代码
f2.Top = this.Top-100;
f2.Left = this.Left-100;
就可以跟着动了 (-100只是为了看到后面的窗体)
f2.Top = this.Top-100;
f2.Left = this.Left-100;
就可以跟着动了 (-100只是为了看到后面的窗体)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//移动距离
int top;
int left;
//移动前坐标
point origrinalPoint;
//窗体哈希表
Hashtable hasForm = = new Hashtable();
//添加控件 可以多个
hasForm.Add(1,Form2);
你自己写移动方法移动Form1
鼠标点击时记录 Form1 的坐标,以form1为基准
origrinalPoint = Form1.Location;
鼠标放开事件计算差值
top = e.Location.X - origrinalPoint.X;
left = e.Location.Y - origrinalPoint.Y;
//然后循环哈希表移动窗体
给你添加的每个窗体的 Top和Left属性赋值
Top +=top;
Left +=left;
跟随你可以在移动的时候把事件封装了在移动的事件里用 ,
不一定要放开了才移动
大概就是这样吧,不知道能不能搞定
int top;
int left;
//移动前坐标
point origrinalPoint;
//窗体哈希表
Hashtable hasForm = = new Hashtable();
//添加控件 可以多个
hasForm.Add(1,Form2);
你自己写移动方法移动Form1
鼠标点击时记录 Form1 的坐标,以form1为基准
origrinalPoint = Form1.Location;
鼠标放开事件计算差值
top = e.Location.X - origrinalPoint.X;
left = e.Location.Y - origrinalPoint.Y;
//然后循环哈希表移动窗体
给你添加的每个窗体的 Top和Left属性赋值
Top +=top;
Left +=left;
跟随你可以在移动的时候把事件封装了在移动的事件里用 ,
不一定要放开了才移动
大概就是这样吧,不知道能不能搞定
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分别把两个窗口的位置变更事件相互绑定就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询