在同一屏幕位置创建新表单
问题描述:
我想在同一位置创建一个新表单。当我调用这个代码时,一个新的表单打开,但在不同的屏幕位置。在同一屏幕位置创建新表单
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
从我的第一个表格中获取位置,但这没有效果。
答
您需要将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();
}
答
最简单的方法是使用表格的StartPosition
属性。该属性应在表单显示之前设置。您可以在调用Show或ShowDialog方法之前或在窗体的构造函数中设置此属性。
例如: form2.StartPosition = FormStartPosition.CenterParent
答
使用此。希望有帮助
private void BtnAddForm_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show(this);
form2.Tag = this;
form2.Location = this.Location;
Hide();
}
答
使用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();
+0
工作完美!谢谢 – user3644817
谢谢,这个工作,但让页面跳转所以它看起来并不很流畅 – user3644817
OK我只是修复了你的代码。 @ user2946329的答案适合你。 –