FECHAR FORMFILHO PARA ABRIR OUTRO

CEREBRO.X 28/08/2007 23:16:45
#233160
Bom Pessoal

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 !!!

USUARIO.EXCLUIDOS 29/08/2007 14:04:25
#233272
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
CEREBRO.X 29/08/2007 14:54:42
#233288
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.

USUARIO.EXCLUIDOS 30/08/2007 09:48:18
#233368
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......


WSOFT 30/08/2007 10:35:56
#233381
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.

LITTLEBOY 01/09/2007 09:20:27
#233707
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

CEREBRO.X 01/09/2007 21:03:02
#233736
LITTLEBOY

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

RAMSES 02/09/2007 13:08:32
#233753
Resposta escolhida
Eu uso essa funcao que verifica se o fom ja esta aberto,se ja esta aberto passo o form para frente senao mando 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)
CEREBRO.X 02/09/2007 13:55:49
#233758
mas se passar o form pçra frente sem fechar vai ficar pesado e mais dificil de tratar?
RAMSES 02/09/2007 18:41:06
#233786
tu quer ter somente um form aberto a cada vez ?
CEREBRO.X 04/09/2007 08:20:22
#233969
é a ideia seria essa abrir um form filho por vez.


Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas