2013-01-04 4 views
2

나는 긴 컨텍스트 메뉴를 가지고 있으며 항목에 시각적 효과를 추가하고 싶습니다. (아니오, 새로운 렌더러를 만들고 싶지 않습니다) 그래서 방금 목록 항목 중 하나에 대해 MouseEnter 및 MouseLeave 이벤트를 만들었습니다.VB.NET 하나의 하위를 여러 항목에 적용하는 방법은 무엇입니까?

Private Sub NewMenuItems_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewMenuItem1.MouseEnter, NewMenuItem2.MouseEnter, etc. 
    MenuItem.ForeColor = Color.Red 
End Sub 

Private Sub NewMenuItems_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewMenuItem1.MouseLeave, NewMenuItem2.MouseLeave 
    MenuItem.ForeColor = Color.Cyan 
End Sub 
: 은 지금은 여기에

내가 지금 무슨에 대한 간단한 예입니다 ... 각 항목에 대한 두 개의 이벤트를하지 않고 상황에 맞는 메뉴 항목의 모든이를 확장 할

각 항목마다 다른 유일한 것은 ".Forecolor"앞에 오는 것입니다. 이 항목을 동시에 모든 항목에 적용하려면 어떻게해야합니까?

답변

7

모든 인스턴스가 MenuItem 인 경우 동일한 이벤트 처리기를 사용하는 경우 sender 매개 변수를 사용하여 실제로 어느 인스턴스를 호출했는지 구분할 수 있습니다.이 매개 변수는 이벤트를 호출 한 인스턴스를 참조해야합니다. 따라서 senderMenuItem 번으로 보내 주시면 찾고있는 것입니다.

캐스팅은 항상주의해야합니다. 이 경우에는이 핸들러를 호출하는 것은 MenuItem인지 확인해야합니다. 그렇지 않으면 다른 객체가 호출 할 경우 캐스트를 사용하여 오류 검사/처리를 수행하려고합니다.

+0

감사합니다 :) 그냥 내가 필요한 것 – Royce

관련 문제