2

1 つの違いだけで、通常どおりアイテムを選択できる ListView を使用できるかどうか疑問に思っていました。ListViewItem が選択されている場合、テキスト ラベルで選択内容を確認したいのですが、画像はそのままにしておきたいと思います。この理由は、現在、画像の上に描画された青い選択範囲がひどいものに見えるためです (透明な画像では効果がさらに悪化します!)。

DrawItem ハンドラーを使用する必要がないことを望んでいましたが、望みは薄いと思います。

どうもありがとう、

一番

フランク

編集:問題を示すスクリーンショットを追加したほうがよいと思いました。ListView を LargeIcon モードで使用しています。

** おっと、私はまだ写真を追加することを許可されていません * ので、ここにリンクを貼っておきます。ご不便おかけしてすみません。***

http://cl.ly/adb9c6d29ffc0e2e1b5e

ご覧のとおり、選択された要素は「Rate vs. Species」です。ただし、アイコンの青みが消えてほしいです。

再度、感謝します。

4

2 に答える 2

1

Winforms ListView の場合、これを行う最も簡単な方法は、ListView から継承し、OnDrawSubitem をオーバーライドして画像の描画のみを変更することです。これを行う場合、OwnerDraw を true に設定し、OnDrawColumnHeader もオーバーライドする必要があります。

継承したくない場合は、代わりに DrawSubItem と DrawColumnHeader を処理できることに注意してください。

于 2010-07-28T20:46:02.803 に答える
0

これを直接行う方法が必要だと思います。おそらく Vista+ で動作することの 1 つは、ListView に Windows エクスプローラーのようにスタイルを設定するように指示することです。

[DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
public static extern int SetWindowTheme(IntPtr hWnd, String pszSubAppName, String pszSubIdList);

SetWindowTheme(this.lvSessions.Handle, "Explorer", null);
于 2012-11-07T15:24:58.857 に答える