public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 f = new Form2(this); f.Show(); } } public partial class Form2 : Form { public Form1 f1 = null; int initx=0;//初始left距离 int inity=0;//初始top距离 int initx1 = 0;//初始left距离 int inity1 = 0;//初始top距离 public Form2(Form1 f) { f1 = f; InitializeComponent(); initx = this.Left; inity = this.Top; initx1 = f1.Left; inity1 = f1.Top; } private void Form2_Move(object sender, EventArgs e) { f1.Top = initx1 + (this.Top - inity); f1.Left = inity1 + (this.Left - initx); } }
在第一个窗口添加LocationChanged事件的处理函数,然后再里面设置第二个窗口的位置
public partial class Form1 : Form { Form2 f = null; int initx = 0;//初始left距离 int inity = 0;//初始top距离 int initx1 = 0;//初始left距离 int inity1 = 0;//初始top距离 public Form1() { InitializeComponent();
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(this);
f.Show();
}
} public partial class Form2 : Form
{
public Form1 f1 = null;
int initx=0;//初始left距离
int inity=0;//初始top距离
int initx1 = 0;//初始left距离
int inity1 = 0;//初始top距离
public Form2(Form1 f)
{
f1 = f;
InitializeComponent();
initx = this.Left;
inity = this.Top;
initx1 = f1.Left;
inity1 = f1.Top;
} private void Form2_Move(object sender, EventArgs e)
{
f1.Top = initx1 + (this.Top - inity);
f1.Left = inity1 + (this.Left - initx);
}
}
在第一个窗口添加LocationChanged事件的处理函数,然后再里面设置第二个窗口的位置
public partial class Form1 : Form
{
Form2 f = null;
int initx = 0;//初始left距离
int inity = 0;//初始top距离
int initx1 = 0;//初始left距离
int inity1 = 0;//初始top距离
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
f = new Form2();
f.Show();
initx = this.Left;
inity = this.Top;
initx1 = f.Left;
inity1 = f.Top;
} private void Form1_Move(object sender, EventArgs e)
{
if (f != null)
{
f.Top = initx1 + (this.Top - inity);
f.Left = inity1 + (this.Left - initx);
}
}
}
inity = this.Top;
initx1 = f.Left;
inity1 = f.Top;
到Form1_Move事件时,这几个值都是0,移动第一个窗体,第二个窗体也不移动。注:我的第一个窗体是居中显示!!!
{
public partial class Form1 : Form
{
private Form f;
int initx = 0;//初始left距离
int inity = 0;//初始top距离
int initx1 = 0;//初始left距离
int inity1 = 0;//初始top距离
public Form1()
{
InitializeComponent();
} private void btnShowDialog_Click(object sender, EventArgs e)
{
f=new Form();
f.Show();
f.Move += f_Move; initx = this.Left;
inity = this.Top;
initx1 = f.Left;
inity1 = f.Top;
} private void f_Move(object sender, EventArgs e)
{
this.Top += f.Top - inity1;
this.Left += f.Left - initx1;
inity1 = f.Top;
initx1 = f.Left; }
}
}
现在是有三个窗体?你到底要移动哪个动哪个不好意思,也许是我描述的不清楚,是这样的,在一个界面上双击SHow弹出一个窗体标示为Form1,剧中显示,Form1里面有一个按钮是show弹出另一个窗体标示为Form2,两个窗体都弹出时,移动第一个窗体Form1,第二个窗体Form2也随之移动...