Usuário com melhor resposta
Abrir Apenas um Formulário.

Pergunta
-
Tenho um menu principal, onde tenho uma barra tool strip que abre vários formulários, quero a solução para que essa barra quando clico abra somente um formulário, por vez, por exemplo:
Tenho 3 ícones(tool strip) no menu principal: Cadastro de usuário, cadastro de material, cadastro de cliente, ai quando clicar no formulário de cadastro de usuário abrir o formulário(Ate ai tudo bem), mais quando clicar no formulário de cadastro de material, exibir uma mensagem que que o formulário de usuário já esta aberto.
A função de verificar se o formulário cadastro já esta aberto consegui fazer, para ele não abrir vários do mesmo tipo e exibir mensagem de formulário já aberto. Fiz assim:
if (Application.OpenForms.OfType<Cadastro>().Count() > 0)
{
MessageBox.Show("O Cadastro já está aberto!");
}
else
{
Cadastro cadastro = new Cadastro();
cadastro.Show();
}Mais não consegui fazer a parte da verificação para não abrir os outros formulários, quando o de cadastro estiver aberto.
Qual melhor solução?
Obrigado
Respostas
-
TENTE:
Cadastro cadastro = new Cadastro();
cadastro.Show();
menu1.Enabled = false;
menu2.Enabled = false;
e no evento Closing
do seu form você faz
((FrmPrincipal)Application.OpenForm["Frmprincipal"]).menu1.Enabled = true;
só lembre de deixar o menu1 como public..
deve resolver para você amigo...
abraços !- Marcado como Resposta Natan Wender sexta-feira, 1 de março de 2013 14:13
Todas as Respostas
-
-
-
TENTE:
Cadastro cadastro = new Cadastro();
cadastro.Show();
menu1.Enabled = false;
menu2.Enabled = false;
e no evento Closing
do seu form você faz
((FrmPrincipal)Application.OpenForm["Frmprincipal"]).menu1.Enabled = true;
só lembre de deixar o menu1 como public..
deve resolver para você amigo...
abraços !- Marcado como Resposta Natan Wender sexta-feira, 1 de março de 2013 14:13
-
Faça um método no seu formulário principal que verifique se existe mais de 1 um formulário aberto:
private void button1_Click(object sender, EventArgs e) { AbreFormulario(new Form1()); } private void AbreFormulario(Form form) { //tem que ser maior que 1, pois o formulário principal entra na contagem if (Application.OpenForms.OfType<Form>().Count() > 1) { MessageBox.Show("Outro Formulário já está aberto!"); } else { form.Show(); } }
Resolve seu problema?
Ao infinito e além!
- Editado Fabio R. Luz sábado, 23 de fevereiro de 2013 13:05
- Sugerido como Resposta Joba Diniz sábado, 23 de fevereiro de 2013 15:50
-
Dê uma olhada nesse artigo, provavelmente irá te ajudar.
Abraços!
Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
thiagocoelho.net | @thiagokoelho- Sugerido como Resposta Afonso Fernandes segunda-feira, 25 de fevereiro de 2013 16:13