掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
XPManでListViewの項目が表示されなくなる (ID:27557)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
解決されたようであれなんですが、そもそも自前で描画したいからオーナードローしようとしてたのではないんでしょうか? となると、カスタムドローを使わずにどのように描画するのか疑問です。 自前で描画するつもりがないなら問題ありませんが。 それと、Mr.XRAYさんのレスについてちょっと気になったので。 >ここで、OwnerDrawをTrueにして、CustomDrawItem等を使用すると、 OwnerDrawをTrueにする事と、CustomDrawItemイベントとは何の関係もありません。 >このイベント内では全てのItemに対して発生します。 CustomDrawItemイベントは実際の描画の時しか呼ばれません。 >しかし、OnDateイベントでは全てのItemが準備されているわけではありせん。そこでIndexのエラーが発生するものと思われます。 実際試してみると分かりますが、ListView.Items.Count=2でもOnDataイベントのItem.Indexが22とかになります・・・ >CustomDrawItemイベント内で処理したい内容をOnDateHintイベントで行うようにしてみてはいかがでしょうか。 OnCustomDrawItemイベントはあくまで描画処理をするイベントなのでその処理をOnDataHintに置き換えたりすることはできません、OnDataHintイベントはOnDataイベントで必要なデータを予めキャッシュする為のイベントです。(OnDataは実際の描画以外でも頻繁に呼ばれるので) 一応、これはSyakeさんへのレスです。Mr.XRAYさんへ言いがかりを付けたい訳ではありませんので、あしからず。 因みに、前のレスで自前で描画する時はCustomDrawItemイベントのみでいいと書きましたが、これをやると速度は通常の仮想リストビューより早くなりますが、コモンコントロールとしてのリストビューとしては機能しなくなります。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.