C#怎么实现二个窗体一起拖动(二个不同的窗体)
解决方案 »
- c#实现类似桌面字幕显示,目的是生成透明背景的字幕小视频
- C# socket 获取 网站信息
- 应用程序最近出现一个恼人的现象,求救!
- 太难了
- 在ASP.NET中怎样截图?
- 刚学的winform和sql建立连接 怎样在winform中写修改删除程序 在sql里实现
- 想学ASP。NET + C# + sql server方面的东西 推荐几本电子书 下载!
- 一道面试题,高手请进
- 请大家,推荐几本C#数据库编程的电子书?
- TFS的服务器IIS站点被删了
- 向C++ 过渡到C#的老牛提问,C#调用C++里DLL含带接口指针参数的函数
- AjaxPro aspx页面怎么调用非同名的CodeFile的Ajax方法
里面让两个Form的相对位置保持不变即可
private void Form1_LocationChanged(object sender, EventArgs e)
{
if (frm.Visible==true)
{
frm.SetDesktopLocation(this.Location.X, this.Location.Y+this.Height);
}
} private void Form1_Load(object sender, EventArgs e)
{
frm.Show();
}
Form1.cs: private Form2 frm;
private void Form1_LocationChanged(object sender, EventArgs e)
{
if (frm!=null)
{
frm.SetDesktopLocation(this.Location.X, this.Location.Y+this.Height);
}
} private void Form1_Load(object sender, EventArgs e)
{
frm = new Form2(this);
frm.Show();
} private void Form1_SizeChanged(object sender, EventArgs e)
{
if (frm != null)
frm.WindowState = this.WindowState;
}
Form2.cs: private Form1 frm;
public Form2(Form1 form)
{
InitializeComponent();
frm = form;
} private void Form2_LocationChanged(object sender, EventArgs e)
{
if (frm != null)
{
if (this.WindowState == FormWindowState.Normal)
frm.SetDesktopLocation(this.Location.X, this.Location.Y - this.Height);
else
frm.WindowState = this.WindowState;
}
} private void Form2_SizeChanged(object sender, EventArgs e)
{
if (frm != null)
frm.WindowState = this.WindowState;
}不过有一个缺点就是,一旦你更改1个窗体的高度使2个窗体高度不一致,那么再移动的时候就会出问题。