VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2004/03/05(Fri) 09:11
投稿者K.J.K.
Eメールakiya@koalanet.ne.jp
URL
タイトルRe: リストボックスへの高速追加

UIに関する操作を単一スレッドで行う以上、それに対応して仕様を
決めるしかありません。

連続してAddItemを呼び出して、それが3秒もかかるというのなら、
1,一度に少しずつ追加し、それをTimerのイベントなどで繰り返す。
2,そもそも、それだけ大量のデータを入れたら、ListBoxとして
  使いにくいから、根本的に仕様を見直す。
3,それほどの数ではないのに時間がかかる、という場合は、追加
  する文字列に問題がないか調べる。
のどれかになるでしょう。

3秒間というのは、UIとしては致命的なので、0.5秒程度以下で追加
できる量を見極めて、それぐらいの単位で繰り返して追加していく、
というのが無難な対応かも知れません。

ListBoxそのものは16Bits制限を受けます。ですが、その上限一杯
までデータを入れるようだと、かなり使い勝手が悪くなりますので、
その制限自体は特に問題がないと思われます。

また、VBのListBox(など標準コントロール)の特徴ですが、AddItem
などする場合、VBが、[UNICODE->Anis文字変換]し、その後に
SendMessageAを使います。この文字変換で時間がかかるケースも
存在します。元となる文字列に、変換されない文字が含まれて
いないかもチェックしてみると良いかも知れません。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -