Usuário com melhor resposta
Form pai e Filho

Pergunta
-
[C# ,Windons Form] Tenho um formulário principal (form Pai) em um menu tool strip, onde eu clico e abre outros formulários(forms Filhos),como por exemplo cadastro de usuario, cadastro de material entre outros. O problema é o seguinte toda vez que eu clico no formulário pai, para abrir um formulário filho abre uma nova instância assim abrindo vários formularios do mesmo tipo, queria broquear isso e deixar abrir apenas um formulário quando eu clicar e se o formulário filho já estiver aberto, exibir uma mensagem de formulário aberto e dar foco ao formulário. obrigado
Respostas
-
tente:
private void SingleInstance() { Form Frm; if ( !OpenForm( "MeuForm" ) ) { Frm = new Form(); Frm.Name = "MeuForm"; Frm.Show(); } } private bool OpenForm( String Name ) { bool Return; Return = false; if ( Application.OpenForms[Name] != null ) { Application.OpenForms[Name].Show(); Return = true; } return Return; }
- Marcado como Resposta Natan Wender terça-feira, 5 de fevereiro de 2013 18:11
- Não Marcado como Resposta Natan Wender terça-feira, 5 de fevereiro de 2013 18:12
- Marcado como Resposta Natan Wender terça-feira, 5 de fevereiro de 2013 18:12
-
Natan, fiz este post no meu blog que poderá te ajudar.
Abraços!
Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
thiagocoelho.net | @thiagokoelho- Sugerido como Resposta Afonso Fernandes quarta-feira, 6 de fevereiro de 2013 15:24
- Marcado como Resposta Natan Wender quarta-feira, 6 de fevereiro de 2013 18:17
Todas as Respostas
-
tente:
private void SingleInstance() { Form Frm; if ( !OpenForm( "MeuForm" ) ) { Frm = new Form(); Frm.Name = "MeuForm"; Frm.Show(); } } private bool OpenForm( String Name ) { bool Return; Return = false; if ( Application.OpenForms[Name] != null ) { Application.OpenForms[Name].Show(); Return = true; } return Return; }
- Marcado como Resposta Natan Wender terça-feira, 5 de fevereiro de 2013 18:11
- Não Marcado como Resposta Natan Wender terça-feira, 5 de fevereiro de 2013 18:12
- Marcado como Resposta Natan Wender terça-feira, 5 de fevereiro de 2013 18:12
-
Muito obrigado pela resposta, mais não solucionou. O problema é que cada vez que eu clico no toolStripButton ele abre um novo form, assim abrindo vários formulários do mesmo tipo. Já pesquisei outras formas, (desabilitar o botão (ou item de menu) que abre o formulário, e só voltar a habilitá-lo quando o formulário fechar). Mais nenhuma forma foi aceita.
-
Natan, fiz este post no meu blog que poderá te ajudar.
Abraços!
Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
thiagocoelho.net | @thiagokoelho- Sugerido como Resposta Afonso Fernandes quarta-feira, 6 de fevereiro de 2013 15:24
- Marcado como Resposta Natan Wender quarta-feira, 6 de fevereiro de 2013 18:17
-
Muito Obrigado Thiago
Pelo seu blog eu conseguir resolver o meu problema. Más não consegui fazer a parte MDI dos forms, em que você coloca os filhos anexados na janela do principal. Não funciona fiz exatamente como no blog e na hora que eu clico para abrir um formulário, no menustrip ele não abre nada acontece. Eu mudei a propriedade IsMdiContainer como true no FormPrincipal, coloquei o código desse forma.
private void trafegoDeInformaçõesToolStripMenuItem_Click(object sender, EventArgs e)
{
frmTrafego trafego = new frmTrafego();
trafego.MdiParent = this;
trafego.Show();
}Mais não funcionou, ai resolvi fazer a parte dos forms abertos, ai percebi que ele reconhece que o form está aberto mais aparece na tela.
Abraço. Obrigado.
-
Tenta baixar o exemplo que eu coloquei e dar uma comparada com o que você fez.
Abraços!
Thiago Coelho - Líder das Comunidades .NET Coders e Windows 8 Brasil
thiagocoelho.net | @thiagokoelho