I have several forms that I 'instantiate' by the click event in the toolstrip, however it seems that it is getting polluted since all codes do the same routine changing only the parameters.
Event to open and check if the Registration - Clients screen is no longer open:
private void cadastrarToolStripMenuItem1_Click(object sender, EventArgs e)
{
//Formulário de Cadstro de Clientes
//Verifica se já existe o mesmo formulário aberto para não sobrecarregar de processos iguais
bool aberto = false;
foreach (frmCadastroClientes f in this.MdiChildren.OfType<frmCadastroClientes>()) //OfType - Filtro que retorna só o que especifiquei
if (f.Name == "frmCadastroClientes")
{
f.Activate();
aberto = true;
break;
}
if (!aberto)
{
frmCadastroClientes CadastroClientes = new frmCadastroClientes();
CadastroClientes.StartPosition = FormStartPosition.CenterParent;
CadastroClientes.MdiParent = this;
CadastroClientes.Dock = DockStyle.Fill;
CadastroClientes.Show();
}
}
Event to open and check if the Registration - Suppliers screen is no longer open:
private void cadastrarToolStripMenuItem_Click(object sender, EventArgs e)
{
//Formulário de Cadastro de Fornecedores
//Verifica se já existe o mesmo formulário aberto para não sobrecarregar de processos iguais
bool aberto = false;
foreach (frmCadastroFornecedores f in this.MdiChildren.OfType<frmCadastroFornecedores>()) //OfType - Filtro que retorna só o que especifiquei
if (f.Name == "frmCadastroFornecedores")
{
f.Activate();
aberto = true;
break;
}
if (!aberto)
{
frmCadastroFornecedores CadastroFornecedores = new frmCadastroFornecedores();
CadastroFornecedores.StartPosition = FormStartPosition.CenterParent;
CadastroFornecedores.MdiParent = this;
CadastroFornecedores.Dock = DockStyle.Fill;
CadastroFornecedores.Show();
}
}
And so it goes .. on other screens too.
How could, if possible, simplify this repeated routine?