/ / Crear un nuevo formulario en la misma posición de la pantalla - c #, wpf, formularios, winforms, ubicación

Cree un nuevo formulario en la misma posición de la pantalla: c #, wpf, formularios, winforms, ubicación

Quiero crear un nuevo formulario en la misma ubicación. Cuando llamo a este código, se abre un nuevo formulario pero en una posición de pantalla diferente.

private void BtnAddForm_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Tag = this;
form2.Location = this.Location;
form2.Show(this);
Hide();
}

solía this.Location para obtener la ubicación de mi primer formulario, pero esto no tiene ningún efecto.

Respuestas

2 para la respuesta № 1

Debe configurar la propiedad StartPosition en Manual para que esto funcione.

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();
}

2 para la respuesta № 2

Utilizar esta. La esperanza ayuda

    private void BtnAddForm_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show(this);
form2.Tag = this;
form2.Location = this.Location;
Hide();
}

1 para la respuesta № 3

Utilizar form2.StartPosition = FormStartPosition.Manual;, También deberías usar form2.Closed += (s, args) => this.Close(); para cerrar el formulario padre después de ocultarlo Intente esto:

Hide();
Form2 form2 = new Form2();
form2.Tag = this;
form2.StartPosition = FormStartPosition.Manual;
form2.Location = this.Location;
form2.Closed += (s, args) => this.Close();
form2.Show();

1 para la respuesta № 4

La forma más fácil es usando el StartPosition Propiedad del formulario. Esta propiedad debe establecerse antes de que se muestre el formulario. Puede establecer esta propiedad antes de llamar al método Show o ShowDialog o en el constructor de su formulario.

Por ejemplo: form2.StartPosition = FormStartPosition.CenterParent