FECHAR FORMFILHO PARA ABRIR OUTRO
Bom Pessoal
to usando o seguinte codigo para abrir um form dentro do mdi
blz
queria que antes de execultar a rotina acima verificasse qual formulario ta aberto. fecha-lo e abrir o form solicitado.
vale ummm !!!
to usando o seguinte codigo para abrir um form dentro do mdi
Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click
Dim frmfechamento As New frmfechamento
frmfechamento.MdiParent = Me
frmfechamento.Show()
End Sub
blz
queria que antes de execultar a rotina acima verificasse qual formulario ta aberto. fecha-lo e abrir o form solicitado.
vale ummm !!!
vo poderia tentar o seguinte:
If FrmServicos.Focus = True Then
frmaberto.Close()
'ou
frmaberto.Hide()
Else
FrmServicos.MdiParent = Me
FrmServicos.Show()
End If
ou
If frmaberto.Activate()Then
frmaberto.Close()
'ou
frmaberto.Hide()
Else
FrmServicos.MdiParent = Me
FrmServicos.Show()
End If
Espero ter te ajudado!
Pedro Lucas
If FrmServicos.Focus = True Then
frmaberto.Close()
'ou
frmaberto.Hide()
Else
FrmServicos.MdiParent = Me
FrmServicos.Show()
End If
ou
If frmaberto.Activate()Then
frmaberto.Close()
'ou
frmaberto.Hide()
Else
FrmServicos.MdiParent = Me
FrmServicos.Show()
End If
Espero ter te ajudado!
Pedro Lucas
PLGS LEGAL Só QUE
eu não sei qual o form que vai estar aberto....
tinha que ser uma rotina que verifica o form aberto e o fecha.
eu não sei qual o form que vai estar aberto....
tinha que ser uma rotina que verifica o form aberto e o fecha.
Bom dia, tive pensando uma maneira fácil é vc criar uma sub ou uma classe com todos os forms que vc tem, a classe o codigo fica escondido e vc só chama a rotina, na sub vc terá que fazer elseif com todos os forms no seu projeto assim ele verifica qual deles esta ativo ou aberto....
desculpa pela gambi mas a maneira que eu faria era esta....
abraços......
desculpa pela gambi mas a maneira que eu faria era esta....
abraços......
Uma outra Gambiara, mas deve funcionar
Crie um Modulo com variaveis publicas ex. Public FormFechamento as boolean = false
depois quando for abrir o formulario faça uma verificaçao em todas as variaveis criadas e a que estiver em true feche o formulario correspondente.
Crie um Modulo com variaveis publicas ex. Public FormFechamento as boolean = false
depois quando for abrir o formulario faça uma verificaçao em todas as variaveis criadas e a que estiver em true feche o formulario correspondente.
Citação:Dim ctl As New Form
'procura pelo form na aplicação
Try
For Each ctl In My.Application.OpenForms
If TypeOf ctl Is Form And ctl.Handle <> Me.Handle Then
ctl.Close()
End If
Next
'caso nenhum form esteja aberto abre o form normalmente
Form2.MdiParent = Me
Form2.Show()
Catch er As InvalidOperationException
'caso encontre algum aberto fecha e abre o novo form
Form2.MdiParent = Me
Form2.Show()
Catch er As Exception
End Try
lembrando que "Me" no codigo acima refere-se ao mdiform
LITTLEBOY
tem alguma coisa errada!
ta fechando todos os forms e a aplicação.
veja:
tem alguma coisa errada!
ta fechando todos os forms e a aplicação.
veja:
Private Sub ToolStripMenuItem11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem11.Click
Dim ctl As New Form
'procura pelo form na aplicação
Try
For Each ctl In My.Application.OpenForms
If TypeOf ctl Is Form And ctl.Handle <> Me.Handle Then
ctl.Close()
End If
Next
'caso nenhum form esteja aberto abre o form normalmente
Dim frmCadastroUsuario As New FrmCadastroUsuario
frmCadastroUsuario.MdiParent = Me
frmCadastroUsuario.Show()
Catch er As InvalidOperationException
'caso encontre algum aberto fecha e abre o novo form
FrmCadastroUsuario.MdiParent = Me
frmCadastroUsuario.Show()
Catch er As Exception
End Try
End Sub
Eu uso essa funcao que verifica se o fom ja esta aberto,se ja esta aberto passo o form para frente senao mando abrir
e o chamo assim
Me.OpenForm(Form que quero abrir)
Private Sub OpenForm(ByVal openForm As Form)
Dim foundForm As Boolean = False
For Each form As Form In Me.MdiChildren
If form.Name = openForm.Name Then
foundForm = True
form.BringToFront()
form.WindowState = FormWindowState.Normal
Return
End If
Next
If Not foundForm Then
openForm.MdiParent = Me
openForm.MaximizeBox = False
openForm.FormBorderStyle = FormBorderStyle.Fixed3D
openForm.StartPosition = FormStartPosition.CenterScreen
openForm.Show()
End If
End Sub
e o chamo assim
Me.OpenForm(Form que quero abrir)
mas se passar o form pçra frente sem fechar vai ficar pesado e mais dificil de tratar?
tu quer ter somente um form aberto a cada vez ?
é a ideia seria essa abrir um form filho por vez.
Tópico encerrado , respostas não são mais permitidas