VB2005のListViewでView.DetailsでColumnを追加して表形式での表示を
しています。
この状態で、表の内部をクリックすると選択された行はデフォルトでは
青く強調表示されます。
現在FullRowSelectを有効にしていますので、クリックすると行全体が
青く反転表示されます。
これをクリックされたSubItemのみの強調表示にするにはどのような方法
がありますでしょうか?
e.x,e.yによりクリックされたSubItemを特定することはできていますの
で、強調表示を無効にできればいいのかなと思っていますが、そのプロ
パティを見つけることができていません。
一つ設定すればOKってなプロパティはありません。Excelみたいなのを目指したコントロールではありませんし。
VB2005/,NET 2.0 なら DataGridView を使った方がいいかもしれません。
敢えて ListView でどうにかするなら、オーナードローを使って自分で描画処理を書く必要があります。
ありがとうございます。
>これをクリックされたSubItemのみの強調表示にするにはどのような方法
>がありますでしょうか?
この表現では望みが高すぎた感がありますね。
部分的にわけての質問として
>クリックすると行全体が青く反転表示されます。
このときの「青く」という部分の色を設定することも不可能なのでしょうか?
#あるいは「強調表示」をしないようにするとかも含めて・・
Hongliang さんは、不可能だとは回答されていないように思いますが?
[VB2005]の場合、なにやらヘルプにも記載されているようです。。。
[組み込みのオーナー描画サポートを備えたコントロール]
http://msdn2.microsoft.com/ja-jp/library/yyfab68k(VS.80).aspx
>このときの「青く」という部分の色を設定することも不可能なのでしょうか?
基本的に、システムの強調色をアプリ側で変更しようとすることが
お勧めできない仕様だと思ったりもします。
最終的な目標が
>SubItemのみの強調表示
で、標準のプロパティのみでどうにかしようと思うなら、選択解除して
BackColor を変更するとか?
いろいろご指導ありがとうございます。
>選択解除してBackColor を変更するとか?
この方法も考えたのですが「選択中」というプロパティをほかでも使って
いるので最終的な案としたいです。
#オーナードローを使って自分で描画処理を書く、というのも最後の技として・・
もう一度確認したいのですが、
ListViewのDetail状態での選択状態表示は青いバックでの強調表示しか
ないのでしょうか?
#OSの強調表示はデフォルトのままという制限内で。
ツイート | ![]() |