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コントロールがフォーカスを取得したときにフォーカス取得時のイベントを上書きせずに、同じ黒の点線の長方形の選択範囲が表示されます。
私は流暢な英語のスピーカーではないので、できる限りのことを説明しようとしました。誰かが私のことを受け入れる前に良い答えを持っているのを待っています。
リンク@AVIDeveloperありがとうございます。 –