[delphi/2006/November]

リストボックスの全選択・全解除 / 2006-11-23 (木)

 ほとんど俺様メモなんですが….

方法

 リストボックスにLB_SETSELメッセージを送る

全選択

SendMessage(ListBox1.Handle, LB_SETSEL, ord(True), -1);

全解除

SendMessage(ListBox1.Handle, LB_SETSEL, ord(False), -1);

利点

 Selectedプロパティを使って1項目ずつ選択する方法に比べて…

現在位置が変わらない
Selectedを使う場合選択した場所に選択位置が動く(場合によってはスクロールする)
速い
選択位置が動くと再描画が増えて処理時間がよけいにかかりますが.特に項目数が何百何千とある時に差が顕著.
コードが短い
説明不要