Buon giorno
Ho una domanda riguardante il passaggio di dati e l'utilizzo di metodi tra form padre e form figli.
Ecco lo scenario:
Form padre: frmP
Form Figlio: frmF1
Form "nipote": frmN1 (figlio di frmF1)
frmP è il form principale che instanzia una classe che accede al database; sia da frmF1 che da frmN1 ho bisogno di accedere al database.
la domanda e questa:
E' più corretto/elegante passare per riferimento nel costruttore ai form figli i form padre e chiamare direttamente i metodi di quest'ultimo oppure scatenare eventi dai form "nipote" che vengono intercettati dai form figli che vengono poi intercettati ed eseguiti dal form padre?
Esempio:
Metodo 1)
FormNipote riceve nel costruttore un puntatore a frmF1 (suo padre)
frmF1, a sua volta, aveva ricevuto nel suo costruttore frmP nella stessa modalità.
private sub FormNipote_Button1_Click(....) handles button1.Click
'Alla pressione del tasto, carica info dal database
dim MiaTabella as datatable= frmF1.FrmP.CaricaInfoDaDB
'Visualizza ecc...
...
end sub
Metodo 2)
'Nel "NIPOTE"
private sub FrmN1_Button1_Click(....) handles button1.Click
'Alla pressione del tasto, carica info dal database
dim MiaTabella as datatable
raiseevent CaricaTabella(MiaTabella as datatable)
'Visualizza ecc...
...
end sub
'Nel "FIGLIO"
private sub GetCaricaTabella (byref MiaTabella as datatable) handles frmN1.CaricaTabella
raiseevent CaricaTabella(MiaTabella as datatable)
end sub
'Nel "PADRE"
private sub GetCaricaTabella (byref MiaTabella as datatable) handles formF1.CaricaTabella
synclock sqlmanager
SqlManager.CaricaTabella(miatabella)
end synclock
end sub
Grazie, Matteo.