Originariamente inviato da EmanueleTo
allora aspettate, mi spiego meglio

ho un form base di tipo MDI
dal menu del form base richiamo un altro form chiamato A

dal form A posso richiamare un ulteriore form chiamato B ch econtine la DataGrid

i dati presi visualizzati e raccolti su B li voglio rimandare ad A

cosi dovrebbe essere piu chiaro
Lo era anche prima
Devi semplicemente poppolare dei controlli in base alla selezione fatta su un datagridview, il che è un'implementazione che si utilizza normalmente in molti programmi.


Non entro nel merito delle soluzioni proposte, ma entro invece nel merito nella modalità di implementazione relativa alla selezione ed al caricamento dei dati che, a mio avviso, può essere semplificata, resa più efficiente e, cosa ancor più importante, flessibile; seguendo i dettami del polimorfismo che rende il codice riutilizzabile (in questo caso anche la finestra-griglia).


Invece di caricare tutti i campi nella griglia e restituire l'intera riga di dati al form chiamante,

1. Carichi nella griglia solo i campi più significativi (di norma si usa una query)

2. Quando l'operatore seleziona la riga restituisci al form chiamante solo la chiave primaria del record che contiene i dati (questo dato potrebbe essere nella prima colonna, magari nascosta, della griglia. Non è obbligatorio, ma è solo una scelta).

3. Nel form chiamante crei un metodo che carica i dati nei controlli del form in funzione della chiave primaria (restituita dalla griglia) che sarà passata come parametro al metodo stesso.

Ad esempio, all'operatore potrebbe bastare visualizzare nella griglia solo pochi campi dell'utente come il Cognome, il Nome , ... invece che caricaretutti i campi.


La cosa davvero pratica è che in tal modo, potrai usare la tua finestra-griglia per qualsiasi tipo di selezione-dati da una qualsiasi tabella (polimorfismo) con una qualsiasi query, perchè a te non interessa quanti e quali dati vanno mostrati nella griglia, ma solo che sia presente la chiave primaria.
Il caricamento dei dati nei controlli avviene sempre direttamente tramite un'appostio metodo del form chiamante che, ovviamente, sarà mirato ai dati da caricare in ogni singolo form.

Per farti un esempio pratico, pensa che nelle mie applicazioni io consento sempre ad ogni utente di scegliere quali colonne visualizzare e quali no, le può spostare e ridimensionare a piacere; e gli utenti apprezzano moltissimo queste funzionalità perchè consente loro di personalizzarsi la griglia-dati in base alle proprie esigenze.

Usando il tuo metodo sarebbe impossibile farlo, oltretutto se tu volessi riutilizzare la finestra-griglia per caricare altri dati saresti costretto ad implementare numerosi vettori a seconda dei dati a cui accedere.
Ancor peggio, non potresti riutilizzare la stessa finestra in altri progetti, perchè è troppo 'legata' ai dati (vettori) del progetto, che ti obbliga a riscrivere tutto il codice.

Se non ti è chiaro qualcosa chiedi pure, ma sarebbe meglio che tu aprissi una nuova discussione.

Scusa se mi sono permesso di darti questo suggerimento.