ListViewのインデックス取得 – プログラミング – Home

ListViewのインデックス取得
 
通知
すべてクリア

[解決済] ListViewのインデックス取得


ty
 ty
(@ty)
ゲスト
結合: 21年前
投稿: 16
Topic starter  

ListViewにおいて、選択されたインデックスを取得したいと思っています。
簡単に言ってしまえば、ListBoxクラスでの SelectedIndex に相当するものが欲しいので
す。
ListView.SelectedIndicesプロパティを用いて色々と試みましたが、満足した結果は得ら
れませんでした。

よい方法がありましたら、教えていただけないでしょうか


引用未解決
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

> 満足した結果は得られませんでした。

どのような結果を求めて,どのような結果が得られたのでしょうか。
SelectedIndicesでちゃんと得られますが。


返信引用
各無し
 各無し
(@各無し)
ゲスト
結合: 20年前
投稿: 11
 

ListView.MultiSelect = false; ?


返信引用
ty
 ty
(@ty)
ゲスト
結合: 21年前
投稿: 16
Topic starter  

YuOさま、名無しさま ありがとうございます。

:YuOさま
> どのような結果を求めて,どのような結果が得られたのでしょうか。
int型でインデックスを得たいを思っています。
Visual Stadio のヘルプでは、
「ListBox」public virtual int SelectedIndex {get; set;}
に対して、
「ListView」public ListView.SelectedIndexCollection SelectedIndices {get;}
となっていて、int型ではありません。
また、ヘルプをListView.SelectedIndexCollectionをキーワードに追って行くと、
新たに、ContainsメソッドやIndexOfメソッドのキーワードが見つかりますが、
これらの引数には、int型のselectedIndexが必要であると書いてあります。
ListViewで選択されたインデックスを取得したいのに、selectedIndexが引数として必
要??という様な感じで混乱しています。

現在、ListView.View = Details のもので、
Column1 | Column2
A1 B1
C1 D1
上記の状態のListViewに対して、
A1を選択した状態で、
ListView.SelectedIndices.IndexOf( 0 );
を実行した場合、(IndexOfの引数は理解も根拠もなく入れてみた値です。)
結果は0でした。同様に、
ListView.SelectedIndices.IndexOf( 1 ); <=結果は-1でした。
ListView.SelectedIndices.IndexOf( 2 ); <=結果は-1でした。

次にC1を選択した状態では、
ListView.SelectedIndices.IndexOf( 0 ); <=結果は0でした。
ListView.SelectedIndices.IndexOf( 1 ); <=結果は-1でした。
ListView.SelectedIndices.IndexOf( 2 ); <=結果は-1でした。

ListView.SelectedIndices.Item.IndexOf( 0 );
とやるとItemメンバは存在ないとコンパイラに怒られてしまいます。

:名無しさま
> ListView.MultiSelect = false; ?
はい、falseにしてあります。

そもそも私がListViewに対しての理解が浅いので、根本的にやっている事が違うのでしょ
うか?
申し訳ありませんが、これらの事をもう少し教えていただけないでしょうか。


返信引用
各無し
 各無し
(@各無し)
ゲスト
結合: 20年前
投稿: 11
 

ListViewItem.Indexで似たような値が取れるのではないかな?


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

ListBox.SelectedIndexCollection.Itemを使えば,添え字によるアクセスができます。
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/
frlrfsystemwindowsformslistboxselectedindexcollectionclassitemtopic.asp

tyさんが[2005/06/08(水) 00:04:11]に書かれた例だと,
A1を選択した状態 : ListView.SelectedIndices[0]に0が得られます。
C1を選択した状態 : ListView.SelectedIndices[0]に1が得られます。


返信引用
ty
 ty
(@ty)
ゲスト
結合: 21年前
投稿: 16
Topic starter  

名無しさま、YuOさま

ありがとうございます。

名無しさまの方法で、
int idx = ListView.SelectedItems[0].Index;
とする事で期待のものが取得できました。

Youさまの方法そのままで期待のものが取得できました。

お二人とも本当にありがとうございました。
また、何がありましたらお願いいたします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました