• 締切済み

ListViewのカラムの色の変更

色々と探したり試したりしたのですが、BCBのリストビューの カラムの背景色変更ができません。 ListViewのCustomDrawItemでCanvasを使用すると リストの項目の背景色は変更できるのですが、カラムの色は変更できないのでしょうか? http://www.mitene.or.jp/~sugisita/vb6_cmctl.html 上記ページで”リストビューのカラムヘッダの色変更”で できるような事をBCBで行いたいのですが… アドバイスお願いいたします。

  • Caya
  • お礼率78% (255/325)

みんなの回答

  • valvelde
  • ベストアンサー率35% (46/129)
回答No.2

カラムはTListViewではなくTHeaderControlではないでしょうか。

Caya
質問者

お礼

回答ありがとうございます。 THeaderControl コンポーネントを配置してそれ自体を変化させることはできたのですが、 それをリストビューのカラムヘッダに反映させることができないでいます。 どうしたらよいでしょうか?

回答No.1

DrawItem() で、Canvas を使用するとできるかも知れません。(この場合、OwnerDraw プロパティが、true であることが必要です) TStringGrid では、Cell 毎の色を変えたことがあるのですが、TListView は使ったことがないので、自信無しです。

Caya
質問者

お礼

回答ありがとうございます。 DrawItem使用してみましたが、うまくCanvasでカラムの領域を渡せていないのか、やはり、項目のみにしか変更が効きませんでした。

関連するQ&A

  • VB6を使っています。リストビューのカラムヘッダーの色を変えたい。

    VB6を使っています。リストビューのカラムヘッダーの色を変えたい。 リストビューのカラムヘッダーをクリックしたら、そのカラムヘッダーの文字色が変わるとか、又は背景色が変わるとかしてその列が選択されたと判るようにしたいのですが、可能でしょうか? ColumnHeadersにはForecolorとかFontcolorといったものは無さそうなのでどうすればいいか判りません。 別に色にはこだわりません。 太字でもいいです。列がわかればいいのです。よろしくご指導下さい。

  • ListViewでのリスト表示(初歩的な質問です)

    WinXP Pro VB6.0で開発を行っています。 現在、ドラッグ&ドロップにより、ListViewでファイルのパスをリスト表示するプログラムを作成しています。 ListBoxではなくListViewを利用する理由は、パスの長さに合わせてスクロールバーを表示したいためです。 そこで、ドラッグ&ドロップイベントでファイルのパスを取得することは出来たのですが、単純なリスト表示ができません。 ListView1.ListItems.Add(, , tmpPath) でパスを追加しているのですが、プロパティの設定がよく分からずうまく表示できません。 Viewを2-lvwLstに変更し、何となく表示はしているのですが2列表示になり、縦のスクロールバーが表示されません。 なお、表示の際、ヘッダ部分は必要ありません。 また、パスのみの表示であるため、一項目の表示です。 プロパティの設定例を教えていただけませんか? 非常に初歩的な質問ですがよろしくお願いします。

  • ListViewの項目を入れ替える

    C++で詳細表示のリストビューを扱うプログラムを書いているのですが あるボタンを押すと選択した項目が上や下に移動するようにしたいんです そのためには選択した項目とその上下の項目を入れ替えたらいいと思うのですが やり方がわかりません ListView_SortItemsマクロを使ってみましたが、ある二つの項目だけを入れ替えるのは できなさそうです。 MFCを使わない方法があればうれしいです

  • ListView_DeleteItemの挙動

    リストビューでチェックされた項目を削除したくて下のようなプログラムを書いたのですがうまくいきません どうもListView_DeleteItemに問題があるらしいのは分かるのですが、それ以上のことが分かりません どなたかご教授お願いします index = ListView_GetItemCount(hList); for(i=0;i<index;i++){ if(ListView_GetCheckState(hList,i) != 0){ ListView_DeleteItem(hList,i); } }

  • VB6.0 ListViewの一行目を表示しないようにするには?

    VB6.0 ListViewの一行目を表示しないようにするには? こんにちは。 環境WinXP,VB6.0です。 リストビューを表示する際に、一行目を表示させたくないのですが、 どのように書けばいいのでしょうか? DBの値をリストビューに表示しているのですが、テストで入れたデータが表示されてしまいます。 かといって、このテストデータが重要な役割をしているので、消したくありません。 このテストデータは、常に一行目に表示されるので、リストビュー表示の際に一行目だけ消して表示したいです。 何か良い方法があればご教授下さい。

  • ListViewで、PageDownキーイベントを発生させるには?

    VB6で開発しています。 ラベルとListViewのみのフォーム上で、 PageUpやPageDownキー押下で、イベントを発生させたいのですが、 PageDownを押下すると、ListView内のリストのカーソルが下に移動してしまい、 (フォーカスが当たるコントロールがListViewしかないためと思われますが) イベントが発生せずに困っています。 自分で実現しようとしてできなかった方法を紹介します ・リストビューにフォーカスが当たらないようにする。   Enabled = Falseだとスクロールバーが使えないので困る。    ・ListViewはEnabled=Falseにし、スクロールバーコントロールを使って、スクロールさせる。   スクロールさせる方法が見つかりませんでした。 何か、よいアイデアや方法があれば、ご教授宜しくお願いしますm(_ _)m

  • ListViewについて

    いつもお世話になっています。 タイトルの通り、ListViewについて2つ質問があります。 (1)ListViewにDBから検索したデータを代入してますが、動きが遅いんです。  各項目ごとで色を変更したりするためだと思いますが、ListViewの表示を速くする方法はなにかありませんか?  ちなみに今は、ListViewを2枚使って、データをセットしている間は、VisibleをFalseにして、  データセットが完了した時点で、Trueに切り替えています。 (2)(1)の動きで、ListViewを使っているところ、今表示されているListView(Iとします)で  クリックしたデータを次に表示させるListView(IIとします)に引き継がせたいです。  Iで、選択している行をIIで選択状態にすることはできたのですが、  Iで選択している行がスクロールして下にあった場合、IIでもスクロールした場所に  ListViewを移動させたいのですが、その方法が分かりません。 何かご存知の方がいましたら、教えてください。 よろしくお願いいたします。

  • VB6 API LISTVIEW(チェックボックス付き)にチェックを付けたい

    CreateWindowExでLISTVIEW(チェックボックス付きのレポートビュー)を作ったのですが、「山田花子」行にソースでチェックを付ける方法が分かりません。 Form1のソース ↓ Option Explicit Private Sub Form_Load() Dim lngRet As Long Dim lvcol As LV_COLUMN Dim rStyle As Long Dim item As LV_ITEM '-- リストビューの作成 hList = CreateWindowEx(WS_EX_CLIENTEDGE, _ WC_LISTVIEW, "", _ WS_CHILD Or WS_VISIBLE Or WS_BORDER Or _ WS_CLIPSIBLINGS Or WS_CLIPCHILDREN Or _ LVS_REPORT, _ 0&, 0&, Me.ScaleWidth / Screen.TwipsPerPixelX, 200&, _ Me.hwnd, _ 0&, _ App.HINSTANCE, _ ByVal 0&) '拡張スタイルを設定 rStyle = rStyle Or LVS_EX_FULLROWSELECT Or LVS_EX_GRIDLINES Or LVS_EX_CHECKBOXES SendMessageByNum hList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0&, rStyle '-- カラムヘッダーの追加 With lvcol .mask = LVCF_FMT Or LVCF_WIDTH Or LVCF_TEXT Or LVCF_SUBITEM .fmt = LVCFMT_LEFT .cx = 100 .pszText = "名前" .iSubItem = 0 lngRet = ListView_InsertColumn(hList, 0&, lvcol) End With '-- リストアイテムの追加 With item .mask = LVIF_TEXT Or LVIF_IMAGE ' 1つめ .pszText = "山田 太郎" .iItem = 0 .iSubItem = 0 .iImage = 0 lngRet = ListView_InsertItem(hList, item) ' 2つめ .pszText = "山田 花子" .iItem = 1 .iSubItem = 0 .iImage = 1 lngRet = ListView_InsertItem(hList, item) End With End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) '-- リストビューを破棄 DestroyWindow hList End Sub 標準モジュールは補足に書きます

  • 【ListView】選択した項目を取得

    VB6の環境です。 リストビューで、選択した項目を ダブルクリックで取得したいと思います。 どのような方法があるか教えてください。 リストボックスのように扱えなくて苦戦しております。

  • リストビューで罫線を表示

    リストビューで罫線を表示させるにはどうしたら良いのでしょうか?Excelのような表を表示したいのですが。 あと、同じリストで特定の項目だけを色を変えたいのですが、ListView_GetItemRect、ListView_GetSubItemRectで項目ごとの範囲を取得、その範囲を塗りつぶすようにしているのですが、上手く変わってくれません。 教えてください。よろしくお願いします。