Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EduardoFonseca

Verificando Form se já esta aberto

Recommended Posts

Bom dia,

 

Estou utilizando um menu de opções(MenuStrip) aonde abro os WindowForm com o Form.ShowDialog(), ele sempre abre em uma nova janela, isso não seria o problema. Só que o menu de opções existe e pode permitir que alguém clique novamente na opção dentro do menu e tentar abrir um Form já aberto e isso gera um erro.

 

Queria saber se alguém conhece uma maneira de ele verificar se o WindowForm não estiver aberto ele abre o mesmo senão faz nada.

 

Estou utilizando o Visual Basic 2008.

 

Muito obrigado e um grande abraço.

 

 

Eduardo Fonseca

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Estou utilizando um menu de opções(MenuStrip) aonde abro os WindowForm com o Form.ShowDialog(), ele sempre abre em uma nova janela, isso não seria o problema. Só que o menu de opções existe e pode permitir que alguém clique novamente na opção dentro do menu e tentar abrir um Form já aberto e isso gera um erro.

 

Queria saber se alguém conhece uma maneira de ele verificar se o WindowForm não estiver aberto ele abre o mesmo senão faz nada.

 

Estou utilizando o Visual Basic 2008.

 

Muito obrigado e um grande abraço.

 

 

Eduardo Fonseca

Bom Eduardo, uma forma bem simples é utilizar variáveis do tipo booleana (true/false)

 

No option explicit do form que chama os outros forms declare uma variável pra cada form que devera ser aberto como public ex.:

 

Public vform1, vform2, vform3, vform4 as boolean

Quando fizer o procedimento que chama os forms sete a variável pra true enquanto chama o form ex.:

Private sub cmdChamarForm1_Click()
form1.show
vform1 = true

end sub

No mesmo procedimento insira um if para testar se o form está aberto ou não ex.:

Private sub cmdChamarForm1_Click()

if vform = true then
  beep
  exit sub
else 
  form1.show
  vform1 = true
end if

'Se a variável que você criou for igual a true, que é como ela fica quando o form é chamado, o sistema executará um beep e pausará a rotina,
Caso contrário, executará os comando para abrir o form

end sub

Dessa forma falta apenas criar um procedimento pra variável boleana voltar a ser false, no caso seria quando o formulário fosse fechado - procedimento Unload ex.:

 

'Obs.: Unload do form que foi chamado pelo menu

Private Sub Form_Unload(Cancel As Integer)
vform1 = false

End Sub

 

Bome é isso ficou meio confuso mas se naum der certo posta ae!

Flws XD

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.