我想在同一个位置创建一个新表单。当我调用此代码时,会打开一个新表单,但屏幕位置不同。
private void BtnAddForm_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Tag = this;
form2.Location = this.Location;
form2.Show(this);
Hide();
}
我使用this.Location
从我的第一张表单中获取位置,但这没有效果。
答案 0 :(得分:2)
您需要将StartPosition属性设置为Manual才能使其生效。
private void BtnAddForm_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Tag = this;
form2.StartPosition = FormStartPosition.Manual;
form2.Location = this.Location;
form2.Show(this);
Hide();
}
答案 1 :(得分:1)
最简单的方法是使用表单的StartPosition
属性。应在显示表单之前设置此属性。您可以在调用Show或ShowDialog方法之前或在表单的构造函数中设置此属性。
例如:
form2.StartPosition = FormStartPosition.CenterParent
答案 2 :(得分:1)
使用它。希望帮助
private void BtnAddForm_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show(this);
form2.Tag = this;
form2.Location = this.Location;
Hide();
}
答案 3 :(得分:1)
使用form2.StartPosition = FormStartPosition.Manual;
,隐藏后,您还应该使用form2.Closed += (s, args) => this.Close();
关闭父表单试试这个:
Hide();
Form2 form2 = new Form2();
form2.Tag = this;
form2.StartPosition = FormStartPosition.Manual;
form2.Location = this.Location;
form2.Closed += (s, args) => this.Close();
form2.Show();