ListViewのMultiSelectでCtrlとShiftを無効にするには?

解決


sora  2004-12-15 18:36:09  No: 87386  IP: [192.*.*.*]

はじめまして。m(__)m

VB6.0でListViewを使っています。

ListViewには年月と幾つかの項目を表示させています。
ListViewをMultiSelectにして、選択されたリストと同一年月を
Selectした状態にしたいのですが、CtrlやShiftキーは
使用出来ないようにしたいのです。

CtrlキーやShiftキーを無効にする方法を教えてください。
よろしくお願いします。

編集 削除
de  2004-12-15 18:54:49  No: 87387  IP: [192.*.*.*]

規定の動作以外の処理を組み込む労力があるのでしたら
素直にMSFlexGridとかを使って実現してはどうですか?

どうしてもListViewじゃないとだめってことなら
ListViewをサブクラス化してマウスダウンイベントを
場合によって無効化してやればできるかも。
(試してないので保証はできませんが)

編集 削除
de  2004-12-15 19:14:21  No: 87388  IP: [192.*.*.*]

(ListViewで作るときの補足)
WM_LBUTTONDOWNのときMK_SHIFTとMK_CONTROLを調べて
イベントは無効化できるけど、リストビューの
何も無いところからマウスドラッグしても複数選択できるので
その対策も必要かと。

編集 削除
sora  2004-12-16 08:41:57  No: 87389  IP: [192.*.*.*]

返答ありがとうございます。
早速試してみますね。

編集 削除
GOD  2004-12-16 11:16:32  No: 87390  IP: [192.*.*.*]

マウスイベントのみに注意が行ってしまいがちですが、キーボードイベントでの
処理も忘れずに。
Ctrlを押下しながら上下左右キーで移動、スペースで選択とか。
Shiftを押下しながらPage Up/Downとか。

編集 削除
sora  2004-12-23 08:58:08  No: 87391  IP: [192.*.*.*]

みなさん、いろいろご指導ありがとうございます。
なんとかキーを無効にすることが出来ました。
本当にありがとうございました。m(__)m

編集 削除