2012-03-09 47 views
0

可能性の重複:
How can I remove the selection border on a ListViewItemリストビューの選択矩形

私は窓7のネイティブな外観を使用すると、ちらつきを防止するために、リストビューを作成するには、次のコードを使用しています。

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 は、正しい答えに私を導きました。 UISF_HIDEFOCUSで WM_CHANGEUISTATEメッセージを送信することで、フォーカス矩形 を取り除くことができました。だから、http://cboard.cprogramming.com/csharp-programming/128345-listview-remove-focuscues.html#post958690

、我々はリストビューにWM_CHANGEUISTATEメッセージを送信する必要があります - 午後五時11分

私はこのメッセージに関するいくつかの情報を見つけることを試みたとeventualyこの記事を見た時Telanor 4月22日'10コンストラクタ

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

そして、OnSelectedIndexChangedイベントと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); 
} 

ListViewコントロールがフォーカスを取得したときにフォーカス取得時のイベントを上書きせずに、同じ黒の点線の長方形の選択範囲が表示されます。

私は流暢な英語のスピーカーではないので、できる限りのことを説明しようとしました。誰かが私のことを受け入れる前に良い答えを持っているのを待っています。

関連する問題