2012-03-09 3 views
0

가능한 중복 : 나는 윈도우 7 기본 모양을 사용하는 목록보기를 만들기 위해 다음 코드를 사용하고 있는데 깜박 거림을 방지하기 위해
How can I remove the selection border on a ListViewItem목록보기 선택 사각형

.

Windows 7 Native Look for .NET ListView

http://geekswithblogs.net/CPound/archive/2006/02/27/70834.aspx

하지만 난 여전히 검은 점선 선택 사각형을 얻고있다.

dotted

explorer

수 ... 어떻게 탐색기 선택 사각형을 달성 할 수있는 것이다 질문?

도움을 주셔서 대단히 감사합니다.

+0

@AVIDeveloper 링크를 이용해 주셔서 감사합니다. –

답변

2

AVIDeveloper에서 제공하는 링크의 주석을 기반으로합니다. ShowFocusCues 자체가 작동하지 않는 동안

, 그 MSDN 페이지에 나와있는 WM_CHANGEUISTATE 정답으로 나를 이끌었다. UICF_HIDEFOCUS로 WM_CHANGEUISTATE 메시지를 보내면 포커스 사각형을 제거 할 수있었습니다. - Telanor 사월 22 '10 17시 11분

에서 나는이 메시지에 대한 몇 가지 정보를 찾기 위해 노력하고 eventualy이 게시물보고 : http://cboard.cprogramming.com/csharp-programming/128345-listview-remove-focuscues.html#post958690

그래서, 우리는에있는 ListView에 WM_CHANGEUISTATE 메시지를 보낼 필요를 생성자

SendMessage(Handle, 0x127, 0x10001, 0); 

그리고 우리는 OnSelectedIndexChanged 및 OnEnter 이벤트를 재정의 할 것입니다. ListView에 포커스를 얻을 때 OnEnter 이벤트를 무시하지 않고

protected override void OnSelectedIndexChanged(EventArgs e) 
{ 
    base.OnSelectedIndexChanged(e); 
    SendMessage(Handle, 0x127, 0x10001, 0); 
} 
protected override void OnEnter(EventArgs e) 
{ 
    base.OnEnter(e); 
    SendMessage(Handle, 0x127, 0x10001, 0); 
} 

는 같은 검은 색 점선 선택 사각형이 나타납니다.

나는 유창한 영어 강사가 아니기 때문에 가능한 최선을 설명하려고 노력했다. 누군가 내 대답을 듣기 전에 더 좋은 대답을하면 기다릴 것이다.

관련 문제