ListViewのBackColor(?)


ゆうこ  2007-07-30 16:21:56  No: 137029

VB2005のListViewでView.DetailsでColumnを追加して表形式での表示を
しています。

この状態で、表の内部をクリックすると選択された行はデフォルトでは
青く強調表示されます。

現在FullRowSelectを有効にしていますので、クリックすると行全体が
青く反転表示されます。

これをクリックされたSubItemのみの強調表示にするにはどのような方法
がありますでしょうか?

e.x,e.yによりクリックされたSubItemを特定することはできていますの
で、強調表示を無効にできればいいのかなと思っていますが、そのプロ
パティを見つけることができていません。


Hongliang  URL  2007-07-30 18:34:24  No: 137030

一つ設定すればOKってなプロパティはありません。Excelみたいなのを目指したコントロールではありませんし。
VB2005/,NET 2.0 なら DataGridView を使った方がいいかもしれません。

敢えて ListView でどうにかするなら、オーナードローを使って自分で描画処理を書く必要があります。


ゆうこ  2007-07-30 21:20:38  No: 137031

ありがとうございます。

>これをクリックされたSubItemのみの強調表示にするにはどのような方法
>がありますでしょうか?

この表現では望みが高すぎた感がありますね。

部分的にわけての質問として

>クリックすると行全体が青く反転表示されます。

このときの「青く」という部分の色を設定することも不可能なのでしょうか?
#あるいは「強調表示」をしないようにするとかも含めて・・


特攻隊長まるるう  2007-07-31 00:33:43  No: 137032

Hongliang さんは、不可能だとは回答されていないように思いますが?
[VB2005]の場合、なにやらヘルプにも記載されているようです。。。
[組み込みのオーナー描画サポートを備えたコントロール]
http://msdn2.microsoft.com/ja-jp/library/yyfab68k(VS.80).aspx

>このときの「青く」という部分の色を設定することも不可能なのでしょうか?
基本的に、システムの強調色をアプリ側で変更しようとすることが
お勧めできない仕様だと思ったりもします。

最終的な目標が
>SubItemのみの強調表示
で、標準のプロパティのみでどうにかしようと思うなら、選択解除して
BackColor を変更するとか?


ゆうこ  2007-07-31 20:05:27  No: 137033

いろいろご指導ありがとうございます。

>選択解除してBackColor を変更するとか?

この方法も考えたのですが「選択中」というプロパティをほかでも使って
いるので最終的な案としたいです。
#オーナードローを使って自分で描画処理を書く、というのも最後の技として・・

もう一度確認したいのですが、

ListViewのDetail状態での選択状態表示は青いバックでの強調表示しか
ないのでしょうか?
#OSの強調表示はデフォルトのままという制限内で。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加