DUVIDAS AO USAR FORMULARIO MDI

USUARIO.EXCLUIDOS 06/08/2007 09:46:39
#229598
Bom dia, pessoal..

Estou com o seguinte problema....

No VB.Net, para chamar um form, temos que instanciar o mesmo, correto?
Masss.. quando fecho o form, ao tentar abrir o mesmo, esta sendo aberta a baixo do anterior, ou
seja, é como se ele não estivesse limpando a instancia.

Eu estou fazendo da seguinte maneira..

--No botão do Form Pai.

dim frm as new frmCadCliente
frm.MdiParent = Me
frm.Show


--No botão sai do FrmCadCliente

Me.close

Qual é a forma correta para eu fechar um form?

Att.
Henrique
RAMSES 06/08/2007 10:40:09
#229610
Resposta escolhida
frm.StartPosition = CenterScreen
RAMSES 06/08/2007 10:40:27
#229611
frm.StartPosition = CenterScreen
USUARIO.EXCLUIDOS 06/08/2007 11:00:06
#229616
Ok, muito obrigado pela antenção..

Posso até usar o CenteScreem

Mas do modo que esta, se eu clicar 10 vezes no botão para carregar o form, irão aparecer 10 forms..

então fiz da seguinte maneira.

if IsNothing(form) then
dim frm as new frmCadCliente
frm.MdiParent = Me
frm.Show
end if

ai ele vai verificar se o form ja esta aberto, caso Treu, não ira abrir outros, correto?
Masss... depois que fecho, ele não abre mais nenhum, pois acho q a instancia do form ainda esta lah...

e agora...!!!
USUARIO.EXCLUIDOS 06/08/2007 16:43:12
#229685
Me ajudem ao galera!!!
RAMSES 07/08/2007 10:10:36
#229762
 
Private Sub OpenForm(ByVal frm As Form)
Dim encontro As Boolean = False
For Each filho As Form In Me.MdiChildren
If filho.Name = frm.Name Then
filho.Activate()
encontro = True
End If
Next
If Not encontro Then
frm.MdiParent = Me
frm.StartPosition = FormStartPosition.CenterScreen
frm.Show()
End If
End Sub

e para chamar tu faz assim
Me.OpenForm(My.Forms.frm1)
RAMSES 12/08/2007 14:07:02
#230573
conseguiu resolver teu problema ?
USUARIO.EXCLUIDOS 15/08/2007 14:23:19
#231030
Valeu Rames...
mas eu peguei uma função semelhante a sua....

Public Shared Function AbrirForm(ByVal FormUnico As Boolean, ByVal FormAbrir As Form, ByVal FormPai As Form) As Form
If FormUnico Then
For x As Integer = 0 To FormPai.MdiChildren.Length() - 1
If FormPai.MdiChildren(x).Name = FormAbrir.Name Then
Exit Function
End If
Next
End If
FormAbrir.MdiParent = FormPai
'FormAbrir.StartPosition = FormStartPosition.CenterScreen
FormAbrir.Show()
End Function
Tópico encerrado , respostas não são mais permitidas