2016-06-12 4 views
-2

안녕하세요. 위 메뉴를 가리키면 메뉴 막대의 메뉴 항목의 색상을 변경하고 싶습니다. 누구든지 나를 도울 수 있습니까?C# 메뉴 스트립 호버 색상을 변경하는 방법은 무엇입니까?

enter image description here

+0

아니, 아니에요. 주 항목 호버 색을 변경하고 싶습니다. 그 질문에 대해서는 아무 것도 없습니다 –

+0

텍스트 색은 무엇입니까? – Shaharyar

+0

아니요, 텍스트 배경은 –

답변

1

당신은 정상 MouseEnterMouseLeave 이벤트를 사용하여이 작업을 수행 할 수 없습니다. 메뉴 렌더링을 직접 재정의해야합니다.

private class renderer : ToolStripProfessionalRenderer { 
    public renderer() : base(new cols()) {} 
} 

private class cols : ProfessionalColorTable { 
    public override Color MenuItemSelected { 
     // when the menu is selected 
     get { return Color.Blue; } 
    } 
    public override Color MenuItemSelectedGradientBegin { 
     get { return Color.Black; } 
    } 
    public override Color MenuItemSelectedGradientEnd { 
     get { return Color.White; } 
    } 
} 

을 그리고 당신이 관심 단지의 경우, 이것은 당신이 MouseEnterMouseLeave 이벤트를 사용할 때 발생하는 것입니다 : 당신은 MenuStrip 클래스를 사용하여, 같은 것을 할 수 있습니다. 합니다 (MouseEnter 이벤트 내부가 호출되지였습니다 그러나, BackgroundColor 녹색을했다) :

Only the leave event was been called.

+0

정확히 내가 무엇을 찾고 있었는지, 친절하게도 각하. –

+0

기꺼이 도와 드리겠습니다. 'ProfessionalColorTable' 클래스를 사용하면 더 많은 일을 할 수 있습니다. 이 MSDN 문서를 참조하십시오. https://msdn.microsoft.com/en-us/library/System.Windows.Forms.ProfessionalColorTable(v=vs.110).aspx – carefulnow1

+0

여기서 'Enter'및 'Leave' 메서드는 얘기하고있어? 배경이 녹색으로 된 이유는 무엇입니까? – Shaharyar

관련 문제