나 자신 만의 이벤트를 만들고 싶을 때 그들을 키우는 방법에 대해 궁금해하고있었습니다.C# WinForms에서 커스텀 이벤트 발생하기
아마 내 응용 프로그램 디자인도 엉망입니다.
이
은MainWindow.TextBox
런타임에 매우 자주 업데이트되는 몇 가지 정보를 보유하고, 구조이 경우
ProgramContext
- Form MainWindow
+ Control TextBox
+ Control Button
+ ...
입니다. 그래서, 나는 어떻게 든 그것을 원상태로 회복시킬 필요가있다. (데이터가 저장된 곳에서 데이터를 다시로드 할 수있다.)
EventHandler
을 Validating
-Event에 후킹 해 보았지만 그럴 수 없었다. 속임수를 쓰려면.
table
에 새로운 데이터를 기록) 다른 방법이 실행될 때마다 수행해야 할
ProgramContext
DataTable table = _adapter.GetData();
foreach (DataRow row in table.Rows)
{
MainWindow.TextBox.Text += table.Text.ToString();
}
의 데이터를 다시로드하는 방법이있다.
아이디어가 있으십니까?
예를 들어, 새 델리게이트를 선언하는 대신 public 이벤트 EventHandler MyEvent'와 같이 일반 EventHandler를 사용하는 것이 더 명확합니다. –
'TextChanged'에 후킹을 시도했지만 무한 루프로 끝날 것입니다. 이벤트 핸들러 내에서 텍스트를 변경하려고합니다. –
핸들러 내에서 텍스트를 변경할 수 있지만 메소드 지속 시간 동안 이벤트를 중단해야합니다.다음과 같이 할 수 있습니다 : 이 호출자에 대한 이벤트를 사용하지 않으려면'this.TextChanged - = SomeClassName_TextChanged'를 호출하고 메소드에서 몇 가지 작업을 수행 한 다음'this.TextChanged + = SomeClassName_TextChanged'를 호출하여 이벤트를 다시 활성화하십시오. – Nebula