
お世話になります。
仮想リストビューで画像一覧を表示しているのですが、アイテムの選択状態を上手く取得できず困っています。
通常はItems.SelectedImtesで取れるのですが、仮想リストビューだと例外になってしまいます。
そこでOnItemSelectionChangedで取得しようとしたのですが、何故か選択解除のタイミングでイベントが発生しません。仮想リストビューだからなのでしょうか。
とりあえず今はOnDrawItemで取得して変数に保存していますが、今度はスクロールで隠れた画像の選択解除が取得できません。
ですのでOnItemSelectionChangedでShiftキーとCtrlキーの有無を見て、押されていなければ一度全てのアイテムが選択解除されたものとし、その後Invalidate()とUpdate()でOnDrawItemを呼び出しています。
OnDrawItemで現在表示中の場所(クリックしたアイテム。この時は1つだけのはず)の選択状態が取れるので、とりあえずこれで目的の動作は果たしました。
ですがやり方がスマートでない上に、アイテムをクリックする度に画面を更新しているので見た目が悪いです。
何か良い方法は無いでしょうか?
No.1ベストアンサー
- 回答日時:
仮想モードの場合
ListViewItemCollectionとSelectedIndexCollection型の変数を用意してこれを使ってアクセスするように思います
ListView.ListViewItemCollection myCol;
ListView.SelectedIndexCollection mySel;
Form_Loadなどのイベントで
myCol = new ListView.ListViewItemCollection( listView1 );
mySel = new ListView.SelectedIndexCollection( listView1 );
などと紐付けします
OnItemSelectionChangeで
if (mySel.Count > 0 ) {
ListViewItem oItem = myCol[ mySel[0] ];
}
などといった具合にアクセスすればいいようです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
URIでのページの移動について
-
ListView 項目の選択/選択解除...
-
count(*)で取得した値をJAVAの...
-
DOS窓の非表示
-
郵便番号検索APIにてget Elemen...
-
データ数をカウントしたいのですが
-
JavaScriptで毎日カウントダウ...
-
EXCELのリストボックスを選択し...
-
like演算子内に変数って使えな...
-
RegQueryValueExwでエラー
-
VBA:小数点以下の数字を取得で...
-
GetLongPathName関数について
-
VBA Shapesの座標からセル位置...
-
CATALINA_HOMEの取得方法について
-
利用者側のMACアドレスを取得し...
-
JavaScriptにおいてコンピュー...
-
JavaScriptでリンク先やリモー...
-
リストビュー:先頭行のアイテ...
-
asp.netでtextboxの値を取得
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
PHP8でWarning:Undefined varia...
-
count(*)で取得した値をJAVAの...
-
ListView 項目の選択/選択解除...
-
VBAでActiveDirectoryのユーザ...
-
VBA:小数点以下の数字を取得で...
-
JSP+Servletでのページングの常識
-
データ数をカウントしたいのですが
-
Flexgridで選択行の列の値を取...
-
利用者側のMACアドレスを取得し...
-
getParameter と getAttribut...
-
like演算子内に変数って使えな...
-
JavaScriptにおいてコンピュー...
-
郵便番号検索APIにてget Elemen...
-
DataGridView 複数選択で行番...
-
URIでのページの移動について
-
Spreadの選択行の取得について
-
指定のURLのタイトルを取得...
-
EXCELのリストボックスを選択し...
-
ListViewで複数選択された項目...
おすすめ情報