PDA

View Full Version : [C#] Interazione tra finestre


mto89
31-12-2009, 12:13
Ciao, stavo sperimentando un pò la gestione delle finestre in c#, però ho un problema.

Ho una form principale con un menu ad esempio, cliccando sulla voce New mi apre una seconda form per inserimento di alcuni dati.
Per fare ciò ho creato una seconda finestra aggiungedola al progetto.

Vorrei però poter accedere ai controlli della prima form dalla seconda, però non li posso vedere come faccio?

Dovrei rendere pubblici i controlli del primo form?
Ho provato anche a scrivere una proprietà di lettura del tipo:

public partial class Window1 : Window
{
...
public string name
{
get
{
return txtFirstname.Text;
}
}
...
}

ma dall'altra finestra non posso accedervi, anche se hanno stesso namespace, come mai?

tomminno
31-12-2009, 12:22
Perchè avresti bisogno di accedere ai controlli di una finestra da un'altra?
Non è che ti basta accedere ai dati in essi visualizzati?

mto89
31-12-2009, 12:38
Perchè avresti bisogno di accedere ai controlli di una finestra da un'altra?
Non è che ti basta accedere ai dati in essi visualizzati?

si intendevo accedere ai dati presenti dentro textbox eccetera per visualizzarli, non modificarli.

Però non so come fare dato che dalla classe contenitrice " public partial class Windows1 : Windows " non riesco a visualizzarli in alcun modo

CwNd
31-12-2009, 14:17
Tenendo buona la classe window1, un codice del genere dovrebbe funzionare:


public partial class Window1 : Window
{
...
public string name
{
get
{
return txtFirstname.Text;
}
}
...
}


Scrivi il costruttore della Window2 in questo modo:


public partial class Window2 : Window
{
Window1 window1;
public Window2(Window1 window1)
{
this.window1 = window1;
}
}



e quando nella Window1 instanzi la Window2 gli passi l'instanza della 1:


Window2 w = new Window2(this);


e nella Window2 puoi accedere semplicemente con:


String nome = this.window1.name;