Buenas,
Una posibilidad es usar un dictionary para guardar los formularios abiertos.
Código C#:
Ver originalpublic class FormGeneral .... {
Dictionary<Cliente,Form> formulariosClientes = new Dictionary<Cliente,Form>();
private void lstClientes_DoubleClick(object sender, EventArgs e)
{
if (!formulariosClientes.ContainsKey(cliente)){
var verClienteForm = new frmVerCliente(cliente);
formulariosClientes.Add(cliente,verClienteForm);
verClienteForm.MdiParent = this;
verClienteForm.Show();
verClienteForm.BringToFront();
}
else{
formulariosClientes[cliente].BringToFront();
}
}
}
Y cuando cierres el formulario, tendrías que borrar el formulario del dictionary con el método Remove.
Saludos.