Passaggio di datarow da form2 a form1

martedì 13 luglio 2010 - 19.42
Tag Elenco Tags  C#  |  .NET 3.5  |  Windows 7  |  Visual Studio 2008

TaiChi Profilo | Junior Member

Salve a tutti,

rieccomi a voi per chiedere... chiedere... chiedere...

Quello che cerco di fare è una variante di una situazione classica, da form1 apro in showdialog form2 e ottengo un datarow in questo modo:

foreach (object item in checkedListBoxControl1.CheckedItems) { DataRowView row = item as DataRowView; //MessageBox.Show(row["IDTerritorio"].ToString()); }

adesso come faccio a fare in modo che chiudendo form2 i dati siano disponibili a form1?
Per la verità non mi interessa che sia un datarow, mi basta una semplice lista di stringhe, ma quello che intanto non so fare è capire il meccanismo per passare "all'indietro" i dati ottenuti.

Ho dato un'occhiata qui http://www.dotnethell.it/tips/OpenForms-2.0.aspx ma non so se va bene nel mio caso e con VS2008.

Avete una pazienza infinita.

Grazie.


Alessio Forconi

[EDIT]
Sto provando questa strada, ho creato una proprietà string BackValue in form2 e ottengo quello che voglio così:

foreach (object item in checkedListBoxControl1.CheckedItems) { DataRowView row = item as DataRowView; MessageBox.Show(row["IDTerritorio"].ToString()); BackValue = row["IDTerritorio"].ToString(); }

solo che ottengo solo una delle voci ma devo prevedere di ottenere n elementi.

Grazie.

kataklisma Profilo | Senior Member

>Salve a tutti,

Ciao!

>foreach (object item in checkedListBoxControl1.CheckedItems)
>{
> DataRowView row = item as DataRowView;
> MessageBox.Show(row["IDTerritorio"].ToString());
> BackValue = row["IDTerritorio"].ToString();
>}
>
>solo che ottengo solo una delle voci ma devo prevedere di ottenere
>n elementi.


Hai due possibilità per fare ciò che vuoi in maniera semplice :

1) Crei una proprietà pubblica in Form2, la valorizzi e la richiami dall'istanza di Form2 creata in Form1,
2) Crei un metodo in Form2 che ritorna il tipo di dati che piu ti aggrada, mostrando il form, stile MessageBox.Show() che ritorna il tipo DialogResult, per fare cio rendi il costruttore privato e crea un metodo tipo questo :

private Form2(){}; public string Show(string Nome) { this.ShowDialog(); return "Il tuo Nome è " + Nome; } //Esempio Molto banale....


Ritornando alla tua soluzione (la creazione di una proprietà) puoi utilizzare una lista di DataRowView :

public List<DataRowVew> DatiRitornati {get;set;} ... ... foreach (object item in checkedListBoxControl1.CheckedItems) { DataRowView row = item as DataRowView; MessageBox.Show(row["IDTerritorio"].ToString()); DatiRitornati.Add(row); }
>Grazie.
Di nulla :) Ciao!


------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

TaiChi Profilo | Junior Member

Infatti avevo risolto esattamente così.

Grazie.


Alessio Forconi

kataklisma Profilo | Senior Member

Ciao ;)

>Infatti avevo risolto esattamente così.

Ah, ottimo ;) mi sembrava strano che non avessi provato con una List<> :)

>Grazie.

Di nulla ;)


------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5