チェックボックス付のリストビューを複数選択するには?

解決


RED  2005-09-07 18:31:53  No: 124980

リストビューの複数選択がうまくいかずに困っています。

1.リストビューの左端にチェックボックスを表示している
  (表示プロパティのCheckBoxesはTrue)

2.リストビューは複数選択可能としている
  (動作プロパティのMultiSelectはTrue)

3.Ctrlキーまたは、Shiftキーで複数行選択すると、
    選択行のチェックボックスが勝手にチェックONになってしまう

表示されているリストビューのチェックボックスがチェックOFFであれば、選択してもチェックOFFのままとなるように制御したいのですが、どのように対応すればよいでしょうか?

3.についてもう少し詳細に記述します。
(1)例えば、1行目を選択したことにする(チェックボックスはOFF)
(2)Ctrlキーを押しながら、5行目も選択する
    →この時最初に選択した1行目のチェックボックスが勝手にONになる

ご助言をいただきたく、よろしくお願いいたします。


特攻隊長まるるう  2005-09-07 20:23:09  No: 124981

環境が書かれてないけど、
[VB.NET]で FullRowSelect = True に設定した時に再現する現象かなぁ…?
View = View.Details でしかテストしてないんですが…。
勝手にチェックONだけでなく勝手にチェックOFFも再現できます。
例えば、
(1)1行目5行目のチェックボックス上をマウスクリックしてチェックONにする
(2)1行目のリスト部分をマウスクリックして選択する(チェックボックスはONのまま)
(3)Ctrlキーを押しながら、5行目もリスト部分のマウスクリックで選択する
    →この時最初に選択した1行目のチェックボックスが勝手にOFFになる
どうも基本としては最後に選択するアイテムのチェックの状態と
逆の状態に変更されるみたいなんだけど、複数のリスト部分を
選択した状態でテストを繰り返すと変更されなかったり、法則に
当てはまらない動きをしたり…でマイクロソフトに連絡したけど
解決しなかった気がします(かなり昔の話で担当は別の人だった
ので詳細は分かりません)。

その時は時間も無かったので動作確認したのみでしたが…
見た目を近いまま、プロパティを変更せずにどうにかするには
リスト選択の動作を自分で制御できるもので代用する…例えば
SelectedIndexChanged イベントで選択されたアイテムを全て
解除して BackColor を設定してキーボードやマウスの操作に
応じて BackColor を戻すような処理にするとか…。

チェックボックスって選択状態でスペースキーでも変更できるし
全てつじつま合わせるのは面倒な制御になりそうですが…。


RED  2005-09-07 20:50:45  No: 124982

ご指摘の通り、FullRowSelect = True  の設定です。
チェックが勝手に変更される場合と、されない場合があり、動作が安定しないようです。
おっしゃるように、別の方法で実装するのが確かなのかもしれませんね。

申し訳ありません。
マルチポストにより、ご参考までに参照先を記述させていただきます。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=34773
http://vbnet-iku2.hp.infoseek.co.jp/cgi-bin/treecrsdx01/index.cgi?m=look&bnum=1741


じゃんぬねっと  URL  2005-09-07 23:52:17  No: 124983

まるるうさん、乙可憐です。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=34773#34793

再現するんですね。

まあ、修正依頼を出すなら、当人がインシデントを使ってくれればいいんですけどね...


特攻隊長まるるう  2005-09-08 00:14:03  No: 124984

>まあ、修正依頼を出すなら、当人がインシデントを使ってくれればいいんですけどね...
明らかな不具合ならインシデント消費しないよね?(汗)
2年位前の話題なので未だ修正されてないのってウチの
担当が『不具合でしょ?』って押し切ってインシデント
使わなかったからなのか、実は連絡してなかったのか
…ちょっと不安になってきた(TT)

…最近この組み合わせで ListView 使う事なかったから忘れてたよ…。


RED  2005-09-08 18:22:03  No: 124985

お世話になります。
今回は、リストビューの中に設定していたチェックボックスをなくして、新たに新規のボタンイベントを発生させて対応することにします。
ご意見ありがとうございました。

それから、マルチポストでの質問に関してお詫びさせていただきます。
ご不快に感じられたら申し訳なかったです。
今後、気をつけます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加