WinForms 솔루션에는 동일한 유형의 컨트롤이 여러 개 있습니다. 각 컨트롤에 이벤트 핸들러를 추가해야하며 현재 이벤트 핸들러에서 동일한 작업을 수행해야합니다. 어떤 이유에서든 그들 사이에 차이가있을 것이라고는 예상하지 않습니다.Common Event Handling 모범 사례
예 :
ScheduledPatientsGrid.ProcessGridKey += ScheduledPatientsGrid_ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += RecentPatientsGrid_ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += RecentPatientsGrid_ProcessGridKey;
...
private void ScheduledPatientsGrid_ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
private void RecentPatientsGrid_ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
private void PatientsGrid_ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
지금은 아래 그림 또는 위의 코드 샘플에서와 같이 다른 것을 사용으로 다양한 이벤트 사이에 하나의 이벤트 처리기를 공유하는 것이 좋습니다? (: 비주얼 스튜디오 2008 예)
http://msdn.microsoft.com/en-us/library/4ac48519%28v=vs.90%29.aspx
다음 페이지에서ScheduledPatientsGrid.ProcessGridKey += ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += ProcessGridKey;
RecentPatientsGrid.ProcessGridKey += ProcessGridKey;
private void ProcessGridKey(object sender, KeyEventArgs e)
{
...
}
Microsoft는 그러나 나는 그들이 .NET 2.0 이후를 업데이트하지 않은 것을 알, 그 공유가 더 나은 제안하는 것
이 경우 모범 사례 권장 사항을 만드는 가이드가 있습니까?
그럴 수 있습니다. 아마도 디자이너 측면을 생각한 적이 없었을 것입니다. 나는 디자이너를 사용하지 않습니다.>>) –
@ChrisSinclair : 디자이너를 사용하지 않는다면 그 불쌍한 이름을 사용하기위한 변명조차도 덜합니다;) –
아마도 .나는 이벤트 랩퍼를 읽는 것을 끝내는 경향이있다. "이것은 사용자가 버튼을 클릭했을 때 일어나는 일"이다. 그러나 두 번째 생각에, 나는 이벤트 리스너가 실제로 어떤 컨텍스트에 관해서는 안된다고 생각한다. 그들은 전화를 받고있다. 마우스 클릭에서 키 누르기로 바뀌면 나머지 코드도 신경 써야합니까? 신경 써야 하나? 나는 그렇지 않다고 생각한다. 문제가되는 유일한 장소는 내가 처음에 이벤트를 등록하는 곳입니다. 감사합니다. 다음에 이벤트를 연결할 때 이것을 강력하게 고려할 것입니다. :) –