2009-06-10 8 views

Antwort

14

Wenn Sie versuchen, WinForms zu verwenden, können Sie ein benutzerdefiniertes Ereignis in Ihrem "untergeordneten" Formular implementieren. Sie könnten dieses Ereignis auslösen, wenn auf die Schaltfläche in Ihrem "untergeordneten" Formular geklickt wurde.

Ihr "Eltern" Formular würde dann auf das Ereignis hören und sein eigenes TextBox-Update behandeln.

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

Grob; Das eine Formular muss einen Verweis auf ein zugrunde liegendes Objekt haben, das den Text enthält. Dieses Objekt sollte ein Ereignis zur Aktualisierung des Textes auslösen. Die TextBox in einem anderen Formular sollte einen Delegaten haben, der dieses Ereignis abonniert. Dadurch wird festgestellt, dass sich der zugrunde liegende Text geändert hat. Sobald der TextBox-Delegat informiert wurde, sollte die TextBox das zugrunde liegende Objekt nach dem neuen Wert des Texts abfragen und die TextBox mit dem neuen Text aktualisieren.

0

Angenommen, WinForms;

Wenn das Textfeld an eine Eigenschaft eines Objekts gebunden ist, würden Sie die INotifyPropertyChanged-Schnittstelle für das Objekt implementieren und über den Wert der zu ändernden Zeichenfolge informieren.

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")); 
      } 
     } 
    } 

Mit dem oben, wenn Sie den Titel Eigenschaft binden - das Update durchführen ‚automatisch‘ auf alle Formen/Textfelder, die an das Objekt binden. Ich empfehle das oben Senden bestimmter Ereignisse, da dies die übliche Art und Weise der Benachrichtigung über die Bindung von Updates an Objekteigenschaften ist.

Verwandte Themen