C# Popolare ListView da Form Figlio

martedì 30 ottobre 2007 - 15.44

w_t Profilo | Junior Member

Salve, ho un problema che non riesco a spuntare,
ho un Form MdiContainer dove sono contenuti 2 Form Figli e una Classe che mi gestisce tutte le Query e altre operazioni fatte nel DB,

- formFiglio1 contenente una ListView
- formFiglio2 c'è un semplice Button
- DbManager è una Classe dove sono contenuti tutti i codici per la gestione del Database
e quindi tutti i DataSet, DataTable, SqlCommand, Query, etc...

dal formFiglio2 vorrei lanciare il comando per popolare la ListView del formFiglio1.

come posso fare ???

SSUPERPIPPO Profilo | Guru

Devi passare al Form2 una reference della tua listview.

Per intenderci, su Form2 dichiari una variabile di tipo listview pubblica.
Quando poi istanzi la tua Form2 imposti questa variabile passandogli la tua listview (chiaramente l'istanza la devi creare partendo da Form1).
Da form2, le variazioni che farai alla variabile si rifletteranno sulla listview di Form1.

Spero di essere stato abbastanza chiaro

Ciao

Alessandro


http://blogs.dotnethell.it/alebadalin

w_t Profilo | Junior Member

ma un sistema piu' immediato non esiste?

Ecco come vorrei fare ma non riesco a vedere la ListView...

//qui sono in formFiglio2 DbManager oDbManager = new DbManager(); oDbManager.PopoloVisite(lvVisite); //lvVisite è la ListView



//qui sono nella Classe DbManager public bool PopoloVisite(ListView lvwList) { lvwList.Items.Clear(); ListViewItem li; MySqlDataAdapter da = new MySqlDataAdapter(); DataSet ds = new DataSet(); da.TableMappings.Add("Table", "visite"); MySqlCommand oComm = new MySqlCommand("### SQL ###", m_oConn); oComm.CommandType = CommandType.Text; try { da.Fill(ds, "visite"); } catch { return false; } DataTable dt = ds.Tables["visite"]; foreach (DataRow dr in dt.Rows) { li = lvwList.Items.Add(Convert.ToString(dr["iID"])); li.SubItems.Add(Convert.ToString(dr["sVisita"])); } return true; }

SSUPERPIPPO Profilo | Guru

Non mi sembra così complicato...
Non mi vengono in mente altre soluzioni... Almeno più semplici...

Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin

w_t Profilo | Junior Member

>Per intenderci, su Form2 dichiari una variabile di tipo listview
>pubblica.
>Quando poi istanzi la tua Form2 imposti questa variabile passandogli
>la tua listview (chiaramente l'istanza la devi creare partendo
>da Form1).
>Da form2, le variazioni che farai alla variabile si rifletteranno
>sulla listview di Form1.

Scusami ma da "Form2" non vedo la mia variabile Pubblica di "Form1"...

ma dato che i 2 form sono i figli del "Form principale" il quale è un "MdiContainer" non e' possibile che mi impedisca...???

SSUPERPIPPO Profilo | Guru

>Salve, ho un problema che non riesco a spuntare,
>ho un Form MdiContainer dove sono contenuti 2 Form Figli e una
>Classe che mi gestisce tutte le Query e altre operazioni fatte
>nel DB,
>
>- formFiglio1 contenente una ListView
>- formFiglio2 c'è un semplice Button
>- DbManager è una Classe dove sono contenuti tutti i codici per
>la gestione del Database
>e quindi tutti i DataSet, DataTable, SqlCommand, Query, etc...
>
>dal formFiglio2 vorrei lanciare il comando per popolare la ListView
>del formFiglio1.
>
>come posso fare ???

Ecco come devi fare (in sintesi):

\\ formFiglio1

Dim Frm as new formFiglio2

frm.RefListView=me.TuaListView '<== In questo modo passi la tua listview in reference al form figlio 2
frm.show

\\ formFiglio2

Public RefListView as ListView

...

qui scrivi poi le tue routine per gestire la listview

...


Ciao

Alessandro

http://blogs.dotnethell.it/alebadalin
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