- - PR -
ListViewのマルチ選択について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-25 13:24
バージョン:VB2005 OS:WindowsXP
初めての投稿ですがよろしくおねがいします。 VB2005でListViewを使い、CheckBoxesをTrueにして、チェックリストを作成しています。ShiftやCtrlを使って複数選択をしたいのですが、選択すると自動的にチェックもされてしまい、しかも選んだ最後のチェックがTrueかFalseによって全体のチェックのかかり方が変わってしまいます。自分で選択して(その時点ではチェックはされない)その後、ボタンを押したら選ばれているitemにチェックが入るようにしたいのですが…。 | ||||
|
投稿日時: 2006-09-25 13:49
CheckBoxesをやめて、チェックと未チェックのアイコンを使うとか。
| ||||
|
投稿日時: 2006-09-25 15:08
FullRowSelectプロパティがTrueになっていませんか?
(Trueのままがよいのであれば、何か手を考えなければならないと思いますが) この状態で、ShiftやCtrlで複数選択した場合には、シルバさんが記述したような動作をします。(私の環境で再現できました) FullRowSelectをFalseにした場合は、そのような動作はしませんでした。 | ||||
|
投稿日時: 2006-09-25 15:12
返信ありがとうございます。
ListViewプロパティのSmallImageListに作成したImageListをセットし、itemsのコレクションのimageindexの値を変えるとできました。 あとチェックボックスの所(items)をクリックするとチェック、subitemsの所はダブルクリックでチェックされるという感じにしたいのですが…。 | ||||
|
投稿日時: 2006-09-25 15:27
ListView.HitTestメソッドとその例が参考になるでしょう。 | ||||
|
投稿日時: 2006-09-25 15:29
正直、そのような処理を書いたことがないのですが
クリックはListViewのMouseClickイベント、ダブルクリックはMouseDoubleClickイベントが使用できると思います。 そのイベントの引数 MouseEventArgsのLocationプロパティでどの位置がクリックまたはダブルクリックされたか見たらどうでしょうか? まどかさんがおっしゃるように、HitTestメソッドが良さそうですね _________________ HIRO's.NET http://vbdotnet.fc2web.com/ [ メッセージ編集済み 編集者: HIRO 編集日時 2006-09-25 15:31 ] [ メッセージ編集済み 編集者: HIRO 編集日時 2006-09-25 15:36 ] | ||||
|
投稿日時: 2006-09-25 15:43
FullRowSelectをTrueにしたらこういう動きになるんですね。以前作ったプログラムを基にしたので全く考えていませんでした。
一列目にチェックボックス、二列目に番号をセットするというリストだったのですが単純なチェックリストなので一列目にチェックボックスと名前をセットすることで解決しました。 かなり考えが偏ってしまっていたのですごく助かりました。ありがとうございます。 |
1