2011-03-09 6 views
4

C# 응용 프로그램에서 배경색을 투명으로 설정하는 ToolStrip이 있습니다. 이렇게하면 기본 폼의 색상이 표시되지만 안타깝게도 ToolStrip 테두리가 계속 표시됩니다.C# ToolStrip은 투명하지만 테두리가 계속 표시됩니까?

저는 사용자 정의 렌더러를 구현하고 DrawBoarder 메소드를 무효화하기 위해 오버라이드했지만 모든 포함 된 버튼에도 적용되는 것처럼 보입니다 (즉, 드롭 다운 버튼의 메뉴도 테두리없이 그려집니다).

그래서 막혀 있습니다. 전체 ToolStrip을 투명하게 그리지 만 단추를 그대로 두는 가장 좋은 방법은 무엇입니까?

답변

2
protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 
{ 
    if(e.ToolStrip.GetType().Name != "MyCustomToolStrip") 
    { 
     base.OnRenderToolStripBorder(e); 
    } 
} 
0

툴팁을 숨기고 버튼을 유지하려고하므로이 부분을 넣어야합니다.

공구 스트립이 필요합니까?

불필요한 툴팁이없는 응용 프로그램에서 버튼을 사용한 경우 더 좋을 수 있습니다.

+0

그것은 무엇보다도 ToolStrip에를 사용하는 것이 더 싸다. –

4

나는 OnRenderToolStripBorder 메서드를 재정의 (override)하려고했지만 버튼에 전혀 영향을 미치지 않는 것 같습니다. 너 그렇게 해봤 니? 내 특정 경우

public class TestStripRenderer : ToolStripProfessionalRenderer 
{ 
    protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e) 
    { 
    } 
} 
+0

도구 모음에 드롭 다운 단추를 추가하면 드롭 다운 단추의 메뉴가 테두리 유무에 관계없이 렌더링됩니까? 내 시스템에서이 코드는 툴팁의 테두리와 드롭 다운 메뉴의 테두리를 제거합니다 –

+0

드롭 다운 메뉴는이 사용자 정의 렌더러의 유무와 완전히 동일하게 나타납니다. –

관련 문제