Hola Isdiar
Te paso estes còdigo ojala que te sirva:
Aquí instancia el formulario hijo y ejecutamos la clase de abajo y si regresa “false” abrimos el formulario y si regresa “true” pues no.
Código:
Catalogos.frmProc _frmPro = new Catalogos.frmProc();
if (ValidaFormularioAbierto(this, _frmPro.Name) == false)
{
_frmPro.MdiParent = this;
_frmPro.WindowState = FormWindowState.Maximized;
_frmPro.Location = new Point(0, 0);
_frmPro.Show();
}
Esta función recibe el MDI padre y el nombre del hijo que pretendes abrir y si esta abierto te regresa true.
Código:
public bool ValidaFormularioAbierto(Form Padre, string NombreFormulario)
{
bool eValida = false;
foreach (Form childForm in Padre.MdiChildren)
{
if (childForm.Name == NombreFormulario)
{
eValida = true;
break;
}
}
return eValida;
}
Saludos.