Form MDI Padre e form figli

venerdì 25 luglio 2008 - 11.56

Rafnet Profilo | Newbie

CHIEDO SCUSA IL SEVER HA INSERITO 2 THREAD UGUALI


Ciao a tutti ho un problema che sicuramente per voi sarà di facile soluzione.

Ho un form MDI padre "BASE" da cui nella load apro un form figlio "FORM1".
Nel "FORM1" sono presenti 2 bottoni di scelta che dovrebbero aprire 2 form distinti "FORM2" e "FORM3".

come posso fare ad aprirli?

se uso una show dal FORM1 non capisco se viene aperto o no il "FORM2" dato che quello che vedo è solo il BASE
come gestire l'apertura e lachiusura di form??

spero di essere stato chiaro. altrimenti cerco di spiegarvelo meglio.

Grazie.

Lanello Profilo | Senior Member

ciao,

per la gestione delle finestre "figlio" non devi fare altro che istanziarle...

esempio:

dim x as new formfiglio x.show

oppure

x.showdialog

ti apre il form figlio in maniera "modale" cioè fino a che non chiudi quello, non puoi fare altro sul form padre.

se vuoi sapere se il form figlio è ancora aperto non devi fare altro che controllare che il tuo "x" esista.
-----------------------------------------------------
La ricompensa per una cosa ben fatta, è averla fatta.

Rafnet Profilo | Newbie


Padre ----> F1
-----> F2
ok dal figlio voglio aprire un'altro figlio con lo stesso padre

da dove lo apro?

se apro da F1 e poi faccio la close o (unload)
si chiudono sia f1 che f2

sanbiz Profilo | Senior Member

>
>Padre ----> F1
> -----> F2
>ok dal figlio voglio aprire un'altro figlio con lo stesso padre
>
>da dove lo apro?
>
>se apro da F1 e poi faccio la close o (unload)
>si chiudono sia f1 che f2

Dunque vediamo se ho capito:
- tu hai un form mdiParent chiamato Base
- Il Base al load apre un form mdiChild Form1
- Form1 dovrebbe aprire altri due form figli di Base
Giusto?

Dovresti allora già aver impostato la proprietà di isMdiContainer a true del form Base
Poi, nell'evento load del form Base probabilmente farei una cosa del genere:

Private Sub frmBase_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim f1 As New Form1
f1.MdiParent = Me
f1.Show()
End Sub

Stessa cosa dovrai farla nell'evento click del pulsante che apre il form2 su form1, ma stando attento ad impostare la proprietà Parent correttamente:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f2 As New Form2
f2.MdiParent = Me.MdiParent
f2.Show()
End Sub

In questo modo ogni chlid è dipendente solo dal parent e quindi anche chiudendo form1 form2 rimane attivo.

Spero di aver capito correttamente.
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

Rafnet Profilo | Newbie

hai capito correttamente
mi mancava questa riga di codice

f2.MdiParent = Me.MdiParent
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5