Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Rilevare componente fra due form
venerdì 22 giugno 2012 - 14.59
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
C#
|
Visual Studio 2010
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
ven 22 giu 2012 - 14:59
Salve da giorni che non mi riesce fare una cosa, praticamente il tutto si fa in in c# windows form:
1 form chiamato Form1 con all'interno una panel chiamata pane1
2 form chiamto Form2 con un bottone da dove vorrei fare operazioni ad esempio:
Form1.pannel1.Controls.Clear();
o altro tipo aggiungere una pagina tipo:
Form1.panel1.Controls.Add(newMDIChild6);
la cosanon mi riesce perche sembrerebbe che i controlli fra form non siano accessibili anche se modifico il costruttore e lo rendo public, mi sapreste suggerire qualcosa per venirne a capo??
graszie mille
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
nico839
Profilo
| Senior Member
232
messaggi | Data Invio:
ven 22 giu 2012 - 15:40
ciao, hai provato a lanciare la form 2 dalla form1 passandogli come riferimento la form1?
esempio pratico :
form 2 :
private frm1 as form1
public sub new(byref frm as form1)
frm1 = frm
initializecomponent
end sub
da qui per agire sulla form1 agisci sulla variabile frm1
quindi frm1.controls.add .....
e nella form1 lanci la form2 come
dim frm as new form2(me)
frm.show
Ciao.
Nicolas
http://perledinico.blogspot.com
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
ven 22 giu 2012 - 16:07
non credo che sia la stessa cosa da vb.net a c#
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
nico839
Profilo
| Senior Member
232
messaggi | Data Invio:
ven 22 giu 2012 - 18:00
teoricamente si....
dovrebbe essere
private form1 frm1;
public New(ref form1 frm)
{
frm1 = frm;
initializecomponent();
}
lanci la form2
form2 frm = new form2(this);
frm.show();
Ciao.
Nicolas
http://perledinico.blogspot.com
Vinsent
Profilo
| Senior Member
268
messaggi | Data Invio:
sab 23 giu 2012 - 21:20
>
Salve da giorni che non mi riesce fare una cosa, praticamente
>il tutto si fa in in c# windows form:
>
>1 form chiamato Form1 con all'interno una panel chiamata pane1
>2 form chiamto Form2 con un bottone da dove vorrei fare operazioni
>ad esempio:
>Form1.pannel1.Controls.Clear();
>o altro tipo aggiungere una pagina tipo:
>Form1.panel1.Controls.Add(newMDIChild6);
>la cosanon mi riesce perche sembrerebbe che i controlli fra form
>non siano accessibili anche se modifico il costruttore e lo rendo
>public, mi sapreste suggerire qualcosa per venirne a capo??
>
>graszie mille
In che senso non ti riesce??? Ti restituisce un' errore o un exception?
Con la poca esperienza che ho...non ho mai avuto problemi ad accedere ai controlli tra form e form tranne che il thread chiamante sia diverso dal ricevente, in questo caso basta usare un delegato...
InsettoScoppiettato
Profilo
| Junior Member
66
messaggi | Data Invio:
lun 25 giu 2012 - 01:23
Io farei così:
1) il controls.clear() lo eseguo da un metodo privato di Form1 (ad esempio private void ClearPane1() )
2) creao un evento custom (pubblico) per FOrm 1, che ha come handler ClearPane1() che è void e prende void quindi a bene per gli eventi base), chiamalo ad esempio OnPane1ToBeCleared()
3) dal form 2 invoco l'evento OnPane1ToBeCleared() quando mi serve, per esempio tramite il Button premuto (all0interno del suo handler del click)
in questo modo sarà il thread fi Form 1 a gestire il clear di uno dei suoi contenitori.
Non puoi gestire i contenitori di un form da un alro form, e comunque anche se questo fosse possibile finisresti probabilmente in un caso di cross threading.
ciao
Alessandro Parma
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
lun 25 giu 2012 - 12:20
nico, direi proprio che non va cosi!! ma grazie
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
nico839
Profilo
| Senior Member
232
messaggi | Data Invio:
lun 25 giu 2012 - 12:41
Mi spiace...di solito in vb net quando devo variare valori di textbox o proprietà di button e vari controlli funziona....
Ciao.
Nicolas
http://perledinico.blogspot.com
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
lun 25 giu 2012 - 13:05
si da vb.net si ma con c# le cose cambiano, grazie ancora
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
InsettoScoppiettato
Profilo
| Junior Member
66
messaggi | Data Invio:
mar 26 giu 2012 - 12:09
Scusa gli errori ortigrafici sul mio precedente post, spero sia risultato lo stesso comprensibile e utile.
hai inteso cosa ti proponevo? Io uso proprio questo tipo di call back quando ho due form che lavorano in parallelo, ma ho dato per scontato che i tuoi due form vivano su processi diversi (il che dovrebbe essere per poterli gestire più fluidamente).
Ciao
Alessandro Parma
pieroalampi
Profilo
| Expert
816
messaggi | Data Invio:
mar 26 giu 2012 - 12:17
ho cercato di scriverti in privato mo non riesco a trovare il modo, mi dai una mail?? in poche parole non sono riuscito a farlo forse perche io sostanzialmente lo devo fare fra tre form!!!
------------------------------------------------------
LA PRIMA FRASE DI UN PROGRAMMATORE HELLO WORD ...... ANCHE L'ULTIMA
------------------------------------------------------
InsettoScoppiettato
Profilo
| Junior Member
66
messaggi | Data Invio:
mar 26 giu 2012 - 14:32
alessandro.parma@gmail.com
ciauz
Alessandro Parma
Torna su
Stanze Forum
Elenco Threads
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 !