2009-06-10 1 views

risposta

14

Se si sta tentando di utilizzare WinForms, è possibile implementare un evento personalizzato nel modulo "figlio". Potresti attivare quell'evento quando è stato fatto clic sul pulsante nel tuo modulo "figlio".

Il tuo modulo "padre" dovrebbe quindi ascoltare l'evento e gestire il proprio aggiornamento TextBox.

public class ChildForm : Form 
{ 
    public delegate SomeEventHandler(object sender, EventArgs e); 
    public event SomeEventHandler SomeEvent; 

    // Your code here 
} 

public class ParentForm : Form 
{ 
    ChildForm child = new ChildForm(); 
    child.SomeEvent += new EventHandler(this.HandleSomeEvent); 

    public void HandleSomeEvent(object sender, EventArgs e) 
    { 
     this.someTextBox.Text = "Whatever Text You Want..."; 
    } 
} 
1

Approssimativamente; l'unico modulo deve avere un riferimento ad un oggetto sottostante che contiene il testo; questo oggetto dovrebbe attivare un evento sull'aggiornamento del testo; il TextBox in un altro modulo dovrebbe avere un delegato che si iscrive a quell'evento, che scoprirà che il testo sottostante è stato modificato; una volta informato il delegato di TextBox, TextBox deve interrogare l'oggetto sottostante per il nuovo valore del testo e aggiornare il TextBox con il nuovo testo.

0

Presupposto per WinForms;

Se la casella di testo è associata a una proprietà di un oggetto, è necessario implementare l'interfaccia INotifyPropertyChanged sull'oggetto e notificare il valore della stringa da modificare.

public class MyClass : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    private string title; 
    public string Title { 
     get { return title; } 
     set { 
     if(value != title) 
     { 
      this.title = value; 
      if (this.PropertyChanged != null) 
      { 
      this.PropertyChanged(this, new PropertyChangedEventArgs("Title")); 
      } 
     } 
    } 

Con quanto sopra, se si associa alla proprietà titolo - l'aggiornamento passerà attraverso 'automaticamente' a tutte le forme/caselle di testo che si legano con l'oggetto. Vorrei raccomandare questo sopra inviando eventi specifici, poiché questo è il modo comune di notificare il binding di aggiornamenti alle proprietà dell'oggetto.