Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Come modificare i controlli del Form da una classe?
Forum - C# / VB.NET - Come modificare i controlli del Form da una classe?

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Jollyman (Normal User)
Newbie


Messaggi: 9
Iscritto: 01/11/2010

Segnala al moderatore
Postato alle 18:04
Domenica, 28/11/2010
Salve a tutti,
ho un grosso problema:non so modificare le proprietà di un controllo di un Form da una classe.
In pratica ho un form e una classe per gestire un socket. Quando metto il socket in ascolto (Listen) su una porta vorrei che nel form(Form1) venisse modificato il testo(Text) di un pulsante(Button1).
Ho provato con vari codici...ad esempio:
Codice sorgente - presumibilmente C# / VB.NET

  1. Form1 f1=new Form1();
  2. f1.Button1.Text="Testo";
  3. //va in errore perché il form esiste già ed è impossibile crearlo


ho anche provato con
Codice sorgente - presumibilmente C# / VB.NET

  1. Form1 f1;
  2. f1.Button1.Text="Testo";
  3. //va in errore e dice che :"Riferimento a un oggetto non impostato su un'istanza di oggetto."


Come faccio?

PM Quote
Avatar
arack95 (Member)
Pro


Messaggi: 144
Iscritto: 15/11/2010

Segnala al moderatore
Postato alle 18:20
Domenica, 28/11/2010
Premetto che non uso .NET da non so quanto e che forse sto per dire una cazzata(molto probabilmente) 8-|  comunque hai provato ad usare this?

this->Button1.Text="Testo";

Spero che vada :-|


Take life less seriously!
PM Quote
Avatar
Jollyman (Normal User)
Newbie


Messaggi: 9
Iscritto: 01/11/2010

Segnala al moderatore
Postato alle 18:24
Domenica, 28/11/2010
No, non funziona perché se il lavoro avviene nella classe this indicherà la classe e non il form.

PM Quote
Avatar
arack95 (Member)
Pro


Messaggi: 144
Iscritto: 15/11/2010

Segnala al moderatore
Postato alle 18:32
Domenica, 28/11/2010
Non è che mi faresti vedere il source? Magari con visual studio riesco a combinare qualcosa.

Ultima modifica effettuata da arack95 il 28/11/2010 alle 18:36


Take life less seriously!
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:23
Domenica, 28/11/2010
Testo quotato

Postato originariamente da arack95:

Premetto che non uso .NET da non so quanto e che forse sto per dire una cazzata(molto probabilmente) 8-|  comunque hai provato ad usare this?

this->Button1.Text="Testo";

Spero che vada :-|




la fantasia di arack non ha limiti, però io sono dell'idea che al posto di sparare cagate uno dovrebbe starsene zitto.

ad ogni modo per ottenere l'istanza del form aperto basta utilizzare Application.OpenForms["NomeForm"].
Da quell'istanza puoi accedere ai controlli di cui hai bisogno, ovviamente prima castando il Form di ritorno al tipo del form di ritorno, in questo caso Form1.

http://msdn.microsoft.com/en-us/library/system.windows.for ...

Ultima modifica effettuata da HeDo il 28/11/2010 alle 19:23


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Segnala al moderatore
Postato alle 19:42
Domenica, 28/11/2010
Oppure quando istanzi la classe che gestisce la socket passi crei un costruttore personalizzato e ti fai passare l'istanza del form che ti interessa...


Chi lotta può perdere. Chi non lotta ha già perso...
PM Quote
Avatar
arack95 (Member)
Pro


Messaggi: 144
Iscritto: 15/11/2010

Segnala al moderatore
Postato alle 20:31
Domenica, 28/11/2010
Testo quotato

Postato originariamente da HeDo:

la fantasia di arack non ha limiti, però io sono dell'idea che al posto di sparare cagate uno dovrebbe starsene zitto.




Calmo Hedo, mica mordo. Non siamo mica nati imparati, neanche tu, ricordalo. Volevo solo aiutare siccome nessuno rispondeva, magari "azzeccavo la risposta", tra l'altro l'ho detto che probabilmente stavo per dire una cazzata.
Non capisco questo tuo atteggiamento ostile verso me :-|


Take life less seriously!
PM Quote
Avatar
Jollyman (Normal User)
Newbie


Messaggi: 9
Iscritto: 01/11/2010

Segnala al moderatore
Postato alle 20:41
Domenica, 28/11/2010
Non accede lo stesso ai controlli. Rende disponibile la modifica delle proprietà e varie cose del Form1 tranne che ai controlli (listBox, Button, label)

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 23:26
Domenica, 28/11/2010
Testo quotato

Postato originariamente da Jollyman:

Non accede lo stesso ai controlli. Rende disponibile la modifica delle proprietà e varie cose del Form1 tranne che ai controlli (listBox, Button, label)



perchè i controlli sono dichiarati come private, basta che vai nel designer.vb e metti public al posto di private sui controlli che vuoi modificare dall'altro form.

@Arack: nessuno è nato imparato, non stiamo parlando di questo. Fidati che l'atteggiamento di "la sparo tanto per" ti porterà solo problemi in qualsiasi ambito :) cmq io non ho atteggiamenti ostili verso nessuno, al massimo ho atteggiamenti ostili verso atteggiamenti stupidi :)


Ingegnere Informatico
https://ldlagency.it
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo