FORM ABERTO

JOHNHEY 07/01/2012 14:41:06
#392627
Como acho que não fui claro resolvi excluir e criar um novo tópico.

Tenho um mdi com o nome de principal.

Tenho também inúmeros outros forms como children, Ex: Registo de Paises, Pesquisa, Ruas, etc.....

Há tempos coloquei aqui um tópico pedindo uma ajuda, a minha dúvida era:
Queria que ao clicar no menu - Registo de Paises ou menu - Ruas, ele abrisse apenas uma vez o form e não inúmeras vezes, mas o problema era que eu uso o mesmo form só alterando botões e nomes dos campos, para não precisar criar vários forms.
Quanto a isso quero agradecer as respostas pois me ajudou e consegui resolver a questão.
Agora me deparei com outra dúvida:
Quando quero abrir dois forms não consigo, ele abre apenas um e preciso fechar para abrir outro, mesmo se for com forms diferentes.
gostaria que ao clicar no menu ele apenas verificasse os forms abertos, caso já esteja aberto apenas vinha para frente e se não estivesse abria-se.

fiz as seguintes linhas:

nos menus: Exemplo no menu RUAS

Private Sub RuasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RuasToolStripMenuItem.Click
Try
Dim childform As New Registos
verificar()
If verificar() = False Then
childform.MdiParent = Me [ô]Coloca o igreja como children
variaveldcf = [Ô]Registo de Ruas[Ô] [ô] atribui um valor a variavel
childform.Show() [ô]Exibe o formulário
Else
childform.BringToFront()
End If

Catch EX As Exception
MsgBox([Ô]erro - [Ô] + EX.Message)
End Try
End Sub

Função Verificar:

Private Function verificar() As Boolean
Dim vetor() As String = {[Ô]Registo de Agente[Ô], [Ô]Registo de Agências[Ô], [Ô]Categorias de Serviços[Ô], [Ô]Registo de Concelhos[Ô], [Ô]Registo de Distritos[Ô], [Ô]Registo de Estado Civil[Ô], [Ô]Registo de Freguesias[Ô], [Ô]Registo de Paises[Ô], [Ô]Registo de Ruas[Ô], [Ô]Autorização do utilizador[Ô], [Ô]Registo de Saidas[Ô]}
verificar = False
For Each principal As Form In Me.MdiChildren
For A = LBound(vetor) To UBound(vetor)
If principal.Text = vetor(A) Then
verificar = True
Exit For
Else
verificar = False
End If
Next
Next
Return verificar
End Function

Só que vejo que não verificar todos os forms aberto e sim apenas um.
JOHNHEY 07/01/2012 14:43:59
#392628
Preciso fechar o form Registo de Paises para abrir o form resgisto de Ruas
JOHNHEY 07/01/2012 14:45:44
#392629
Ou para abrir o form Registo de Ruas Preciso fechar Registo de Paises
JOHNHEY 07/01/2012 15:37:26
#392632
Só que ele verifica apenas um form e preciso que veja todos, exemplo:

Ver form aberto
form abertos = Ruas, paises
se clicar nos menus ruas ou paises
form já esta aberto
se clicar em outro
abre mais um form
fim

só que esse modelos só verifica um nome mesmo se eu tiver mais de um form aberto
JOHNHEY 07/01/2012 15:49:51
#392634
acho que o erro esta nesta parte:

Dim vetor() As String = {[Ô]Registo de Agente[Ô], [Ô]Registo de Agências[Ô], [Ô]Categorias de Serviços[Ô], [Ô]Registo de Concelhos[Ô], [Ô]Registo de Distritos[Ô], ....}
verificar = False
For Each principal As Form In Me.MdiChildren [txt-color=#e80000] Porque aqui sempre mostra um unico nome do form aberto [/txt-color]
For A = LBound(vetor) To UBound(vetor)

Exemplo como estou com o form Registo de Paises aberto no Me.mdichildren aparece somente este form não muda para os outros, mas não sei como corrigir
PEGUDO 08/01/2012 10:24:51
#392644
Acho que este exemplo pode te ajudar
Claro que você terá de fazer ajuste para que se adeque ao seu programa, mas acho que é isto.
Tópico encerrado , respostas não são mais permitidas