2009-06-10 3 views

답변

14

WinForms를 사용하려는 경우 "자식"양식으로 맞춤 이벤트를 구현할 수 있습니다. '자녀'양식의 버튼을 클릭하면 해당 이벤트가 시작될 수 있습니다.

"부모"양식은 이벤트를 수신하고 자체 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

대략; 하나의 양식은 텍스트를 보유하는 기본 객체에 대한 참조를 가져야합니다. 이 객체는 텍스트의 갱신시에 이벤트를 발생시킵니다. 다른 폼의 TextBox에는 해당 이벤트를 구독하는 대리인이 있어야합니다. 그러면 기본 텍스트가 변경되었음을 알 수 있습니다. TextBox 대리자에 알리면 TextBox는 기본 개체에 새 텍스트 값을 쿼리하고 TextBox를 새 텍스트로 업데이트해야합니다.

0

가정 WinForms;

텍스트 상자가 개체의 속성에 바인딩 된 경우 개체에 INotifyPropertyChanged 인터페이스를 구현하고 변경되는 문자열 값을 알립니다. 위의와

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

, 당신은 제목 속성에 바인딩하는 경우 - 업데이트는 '자동'개체에 바인딩 모든 형태/텍스트 상자를 통해 이동합니다. 이것은 개체 속성에 대한 업데이트 바인딩을 알리는 일반적인 방법이기 때문에 특정 이벤트를 보내는 것으로 권장합니다.

관련 문제