VB scambio dati tra form MdiChildren

sabato 12 agosto 2006 - 14.10

Kiashan Profilo | Newbie

Ciao a tutti

Dunque ho un "FormPrinciapale" di tipo MDI dal quale apro più "FormA" MdiChildren dai quali devo aprire un altro "FormB" per eseguire un ricerca in un db e riportare il risultato nel rispettivo "FormA".

Avevo già scambiato dati tra form sia con variabili sia facendo riferimento direttamente ai controlli che usando delle property e fin qui tutto ok i problemi sono arrivati con l'introduzione del Form principale di tipo MDI lo scambio smette di funzionare e senza ottenere eccezioni... perché?!?!?

help me sono in stallo!

Cteniza Profilo | Guru

Credo che per interscambiare tra le forms dei dati la cosa migliore sia quella di attivare una o più classi comuni con i membri shared.

Kiashan Profilo | Newbie

Così facendo non corro il rischio che un "FormA1" (MDIChildren ) invece di prendere un valore dato dal suo "FormB1" prenda quello dato da un "FormBx" aperto da un "FormAx"?

Non so se ho reso l'idea...

Comunque sto ancora provando sono un principiante (si era capito?)

Per ora grazie ciao

Kiashan Profilo | Newbie

Non riesco...
puoi farmi un esempio?

Cteniza Profilo | Guru

Allora aggiungi una o più proprietà pubbliche get/set per ogni form "chiamato" in cui passi tutti i valori che ti interessano.

Kiashan Profilo | Newbie

Con soli 2 form questa soluzione mi funziona ma quando cerco di farlo usando dei form mdichildren non va più e non solleva alcuna eccezione è questo che non capisco dove sbaglio?!?!?!

Cteniza Profilo | Guru

Secondo me devi verificare appieno il rapporto tra classi (ogni form è una classe).
Dalla form principale crei una o più form figlie nella form padre hai una collection mdichildren che puoi usare per accedere alle proprietà pubbliche delle form figlie.
Su ciascuna form figlia hai una proprietà mdiparent che puoi usare per accedere alle proprietà pubbliche della form padre.
Per accedere alle forms "sorelle" devi quindi spazzolare la collection mdichildren.
Se poi hai generato tutte le form figlie come:
Dim f As New FormChildren
e quindi tutte le form sorelle hanno lo stesso tipo non c'è modo "almeno che non lo sappia tu" di distinguerle una dall'altra.
Se quello che intendi fare è leggere il contenuto di una form figlia da un'altra form figlia devi pertanto riuscire ad identificarla e/o impostare alcuni campi per l'interscambio dei dati.

Kiashan Profilo | Newbie

Ho risolto così:
FormMDI apre FormA mdichildren
FormA apre FormB modale quindi non mdichildren
su Formb ho una property che restituisce a FormA il valore trovato

Cosi mi funziona anche se stò pensando di creare una classe che si occupa di fare tutto quindi anche di creare il form di ricerca

Ti ringrazio molto per l'aiuto che mi hai dato

Ciao
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