winform 窗体移动事件 同时移动两个窗体 20

如何同时移动两个窗体Form1Form2点击窗体1的鼠标按下事件触发移动API在这个时候如何移动在移动窗体1的时候2也跟着移动PS不用计时器侦测可这样做就只有当释放鼠标左... 如何同时移动两个窗体 Form1 Form2 点击窗体1的鼠标按下事件触发移动API 在这个时候如何移动在移动窗体1的时候2也跟着移动
PS 不用计时器侦测
可这样做就只有当释放鼠标左键的时候窗体2才能移动 就没有跟随效果了
展开
 我来答
yaobing0687
2010-02-24 · TA获得超过988个赞
知道小有建树答主
回答量:1309
采纳率:0%
帮助的人:902万
展开全部
在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{}
百度网友b00befe
2010-02-24 · TA获得超过305个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:282万
展开全部
很简单啊 只要在Form1中加个timer 然后在timer1_Tick()事件中加代码

f2.Top = this.Top-100;
f2.Left = this.Left-100;

就可以跟着动了 (-100只是为了看到后面的窗体)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ktf1410
2010-02-24
知道答主
回答量:38
采纳率:0%
帮助的人:17.7万
展开全部
//移动距离
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;

跟随你可以在移动的时候把事件封装了在移动的事件里用 ,
不一定要放开了才移动
大概就是这样吧,不知道能不能搞定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skynomadism
2010-02-24 · TA获得超过319个赞
知道小有建树答主
回答量:410
采纳率:100%
帮助的人:165万
展开全部
分别把两个窗口的位置变更事件相互绑定就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式