C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: Listviewの複数選択状態について


(過去ログ 88 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■52566 / inTopicNo.1)  Listviewの複数選択状態について
  
□投稿者/ らーめんまん (3回)-(2010/08/15(Sun) 14:30:10)

分類:[.NET 全般] 

VB.NET2005です。

只今ListViewのデータを検索する機能を作成しています。

検索された結果を全て選択状態にしたいのですが、1つ選択状態にすると、以前の選択状態が解除されてしまい、結果1つのみ選択状態になっているということになってます。

複数選択状態にする方法はあるのでしょうか?
ご教授お願いしますorz

For Each Hzc As ListViewItem In ListView1.Items
For YKR = Ken To Saku Step 1
Dim Hozo As String = Hzc.SubItems(YKR).Text
If InStr(Hozo, TextBox4.Text) Then

ListView1.Focus()
ListView1.Items(YKR).Selected = True

End If
Next
Next




引用返信 編集キー/
■52567 / inTopicNo.2)  Re[1]: Listviewの複数選択状態について
□投稿者/ Azulean (595回)-(2010/08/15(Sun) 15:09:41)
念のため。
プロパティは設定しているのですよね?
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listview.multiselect.aspx
引用返信 編集キー/
■52571 / inTopicNo.3)  Re[2]: Listviewの複数選択状態について
□投稿者/ らーめんまん (4回)-(2010/08/15(Sun) 21:00:26)
はい、プロパティ設定しております…orz

No52567 (Azulean さん) に返信
> 念のため。
> プロパティは設定しているのですよね?
> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listview.multiselect.aspx
引用返信 編集キー/
■52576 / inTopicNo.4)  Re[1]: Listviewの複数選択状態について
□投稿者/ Azulean (596回)-(2010/08/15(Sun) 23:04:03)
No52566 (らーめんまん さん) に返信
掲示されているコードは、ロジックとして正しいのでしょうか?

・YKR の開始値 Ken と終了値 Saku はどういった数値を取り得るのでしょうか?
・SubItems に YKR を指定して比較しているのに、部分一致している場合は ListView1.Items に YKR を指定していますが、合っていますか?
 (一致する SubItems がある決まった値しかないのであれば、検索結果として選択されるのは常に決まったものになると予想されます)
・Selected = True にする対象はもしかして、Hzc では?
引用返信 編集キー/
■52577 / inTopicNo.5)  Re[2]: Listviewの複数選択状態について
□投稿者/ らーめんまん (5回)-(2010/08/16(Mon) 00:03:34)
ロジックを確認したところ、YKRの値でlistview.itemsの行を指定していました。
Azuleanさんのおっしゃる通り、常に決まったものが選択されてしまうという状態でした。
また、Hzcを使用してselectedを試みたのですが、HzcはListviewitemsということで、stringの値を使用してしまうので行をカウントできませんでした。

結論として、Integer型で別途行をカウントする変数を作成しました。すると複数選択状態が可能になり、少々強引な制御をかけることで、指定したListviewitemを何とか選択状態にすることが出来ました。

ちなみにKen、Sakuの数値はListviewの列を自分なりに無理矢理指定したものです。
(1列目の項目で検索したいならば、Ken=0,Saku=0 で1列目のみ検索する。1,2列目の項目で検索ならば、Ken=0.Saku=1で1、2列目で検索を行うといった形です。恥ずかしい…)

最後に私の質問について考察していただいたAzileanさん、本当にありがとうございました。VB.NETを始めてまだ日が浅いですが、時間をかけて学習したいと思います。








No52576 (Azulean さん) に返信
> ■No52566 (らーめんまん さん) に返信
> 掲示されているコードは、ロジックとして正しいのでしょうか?
>
> ・YKR の開始値 Ken と終了値 Saku はどういった数値を取り得るのでしょうか?
> ・SubItems に YKR を指定して比較しているのに、部分一致している場合は ListView1.Items に YKR を指定していますが、合っていますか?
>  (一致する SubItems がある決まった値しかないのであれば、検索結果として選択されるのは常に決まったものになると予想されます)
> ・Selected = True にする対象はもしかして、Hzc では?
解決済み
引用返信 編集キー/
■52578 / inTopicNo.6)  Re[3]: Listviewの複数選択状態について
□投稿者/ Azulean (597回)-(2010/08/16(Mon) 00:08:20)
2010/08/16(Mon) 00:08:54 編集(投稿者)

No52577 (らーめんまん さん) に返信
> また、Hzcを使用してselectedを試みたのですが、HzcはListviewitemsということで、
> stringの値を使用してしまうので行をカウントできませんでした。

言いたいことがよくわかりませんでした。
単純に Hzc.Selected = True と書いたら良いのでは?
(ListView1.Items(YKR).Selected = True を Hzc.Selected = True に置き換える)

必ずインデックスが必要なわけではなく、どれを Selected にするかを特定できれば良いのです。
ListView1.Items(YKR) で得られるのは ListViewItem 型であり、For Each で Hzc として使っているのも同じ ListViewItem 型です。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -