[VB.NET] Aggiornamento oggetto non funziona?

sabato 05 febbraio 2011 - 18.41
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  Windows XP  |  Visual Studio 2005  |  Visual Studio Express

Qwertj Profilo | Newbie

Salve a tutti
Il mio problema è molto semplice:
Avvio l'applicazione, apro una form, prima che si chiuda mi apre altre 2 form:
1° Form:
Esegue un codice che popola un TreeView.
2° Form
Contiene il TreeView

Si aprono praticamente contemporaneamente. L'operazione della 1° Form la eseguo in un DoWork di un BackgroundWorker.
Nella 1° Form il TreeView che popola è dichiarato da codice nel seguente modo:
Dim Tree as TreeView = Form2.TreeView1
Se non sbaglio, essendo tipi reference, ora non dovrebbero puntare allo stesso oggetto, ossia modifciando uno si modifica l'altro?
Il fatto è che ciò non succede, nemmeno se faccio così:
Dim Tree as New TreeView 'codice che lo popola '.... Form2.TreeView1 = TreeView
Come mai non funziona? Come posso fare?

Ciao


Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]

alx_81 Profilo | Guru

>Salve a tutti
ciao

>Il mio problema è molto semplice:
>Avvio l'applicazione, apro una form, prima che si chiuda mi apre
>altre 2 form:
>1° Form:
>Esegue un codice che popola un TreeView.
>2° Form
>Contiene il TreeView
prima domanda che ti faccio io.. capisco la prima form di apertura del programma.. ma come mai una form per fare un caricamento di un treeview?
Puoi aprire direttamente la seconda form e nell'evento load caricare in asincrono il treeview. Sinceramente non capisco perchè dovresti usare due form.

--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

Qwertj Profilo | Newbie

Nella 2° metto una barra di caricamento.


Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]

alx_81 Profilo | Guru

>Nella 2° metto una barra di caricamento.
appunto, non puoi far apparire un overlay sopra al treeview per dare l'idea del caricamento?
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

Qwertj Profilo | Newbie

Anche se facessi così, non voglio che si blocchi l'applicazione finchè non ha caricato tutto il TreeView


Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]

alx_81 Profilo | Guru

>Anche se facessi così, non voglio che si blocchi l'applicazione
>finchè non ha caricato tutto il TreeView
devi creare un thread alternativo allo ui thread, altrimenti si bloccherà sempre.
Sai usare un po' il multithread? Prova a guardare questo esempio:
http://www.codeproject.com/KB/cs/yourownloadingclassbw.aspx
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

Qwertj Profilo | Newbie

Ma quello l'ho capito!
il problema è che se eseguo la 2° Form su un thread separato, quando alla fine del thread io faccio
FormMain.TreeView1 = TreeViewSeparato
Non funziona (non mi da errore/eccezione, non funziona proprio)


Se la conoscenza crea problemi, non è con l'ignoranza che si risolvono [Isaac Asimov]
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5