Referenziare e aggiornare Griglia su un'altro Form

venerdì 25 giugno 2004 - 15.06

Leo Profilo | Junior Member

Ciao Ragazzi!
Ho bisogno di un Vostro consulto .. io ho 2 form .. nella prima (MainForm) c'e' una griglia .. e la seconda form e' quella che apro per inserire dei dati nel database. Quello che vorrei fare e' aggiornare i dati della griglia prima form (MainForm) quando ho terminato l'inserimento nella seconda .. dove ho messo appunto un tasto di conferma inserimento.
La strada da seguire qual'e' ..?? quella di referenziare la griglia della form principale (MainFomr) nel'evento del bottone che uso per confermare i dati della form dell'inserimento?
Come faccio a referenziare la griglia di form che al momento non sto utilizzando e popolarla?
Spero di essermi spiegato .. ciao e grazie di tutto!!!!

Ciao

Brainkiller Profilo | Guru

Io di solito procedo così ma può essere che non sia la via giusta.
Quando creo la nuova istanza di una Form con new Form passo come parametro un riferimento ad un oggetto magari nel tuo caso la Datatgrid.
In questo modo tu dalla seconda Form controlli la DataGrid nella prima Form e puoi fare le operazioni che vuoi.
La programmazione per classi ti consente questo. Solitamente la Form ha un costruttore di Default Form1() tu ne puoi costruire un altro che accetta come parametro la datagrid, poi quando fai new form, passi la DataGrid e il gioco è fatto.
Spero di essermi spiegato.

ciao
david

Leo Profilo | Junior Member

Ciao David, innanzitutto Grazie per il suggerimento!!
Senti .. perdona la mia ignoranza .. ma non e' che potresti essere un pochino piu' preciso .. darmi qualche informazioen maggiore ??
Ho visto nella classe form, ma non trovo la sezione Default_Form .. potresti aiutarmi con un pezzettino di codice per illustrarmi come devo procedere per far funzionare il tutto??

grazie!!
Ciao

alextyx Profilo | Expert

Mi riservo di rimangiarmi tutto, visto che gli occhi mi si stanno chiudendo dal sonno (ho avuto una giornata difficile!), ma se il problema è referenziare la griglia sul primo Form, ovvero referenziare il primo Form, in generale, mi sembra che la soluzione più adeguata sia partire da Sub Main e dichiarare il Form1 in un modulo pubblico, così esso e tutti i suoi membri pubblici saranno visibili a chicchessia nel programma...o no?
Qualcosa del genere, insomma:

Module Module1
Public oform As New Form1

Public Sub Main()
Windows.Forms.Application.Run(oform)
End
End Sub

End Module

Questo per la programmazione e.....ripeto....con ampia verifica d'inventario! Per l'ortografia, suggerirei di togliere l'apostrofo da "un'altro" ;-))
Buonanotte e sogni d'oro!

Leo Profilo | Junior Member

Grazie Alex .. ha funzionato benissimo!!
Ciao
Mirco

alextyx Profilo | Expert

Dunque....a dire il vero mi sto tirando le orecchie, perchè è meglio fare così, per esempio:

Sub Main()
FStart = New FrmStart
Application.Run(FStart)
'FStart.ShowDialog()
End
End Sub

Public Splash As FrmSplash
Public FStart As FrmStart

La dichiarazione è fuori dalla sub main, l'istanziazione, cioè la chiamata del costruttore NEW è dentro.
Non è una finezza estetica, ma succede che se chiami il costruttore sulla riga di una dichiarazione col classico

Dim Pippo as new FrmPippo

scateni anche la routine dell'evento load. Se in quella hai dei rchiami a variabili definite più sotto nel modulo, ti scatena un bell'errore. Nn ho riscontri dalla letterarura sull'argomento, sono solo deduzioni dovute a prove sul campo. Mi pare di aver capito che prima vengono sistemate tutte le dichiarazioni e poi attivate le Sub. Quindi è bene scatenare un costruttore (NEW), solo dopo aver fatto acquisire al programma tutte le dichiarazioni. Ripeto, nn l'ho letto da qualche parte e quindi potrei sbagliarmi, ma ho fatto delle prove che mi inducono a pensare che la faccenda funzioni come ti ho detto. Sono gradite conferme, smentite e/o precisazioni! Saluti a tutti gli amici del forum :-)
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5