- - PR -
[C#] ListViewのインデックス取得について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-03-05 10:41
ListViewの選択された位置を取得しようと以下のようにlistView1のSelectedIndexのイベントで取得するようにしました。
これだと1度目はIndex値を取得し正常に動作しますが2度目はforeachが機能しないのか0のままスルーされてしまうようです。 どうしてなのか、ヒントだけでもお願いします。 何度も初心者的な質問ですいません。 | ||||
|
投稿日時: 2006-03-05 11:08
「しないのか」と言うより、indexes(?) という変数の中身の問題でしょう。 憶測で質問するよりは、ブレークポイントを置いて実際に検証してみると良いです。 この行為を「デバッグ」と言います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-03-05 20:52
じゃんぬさんの言われたとおりにデバッグをしてみました。
すると、 1回目ListView選択時では System.Windows.Forms.ListView.SelectedIndexCollectionのindexesのIndicesArrayは[0]で数字を返していました。 foreach内でも値は取得され、そのまま通しても例外処理は発生しませんでした。 ところが、2回目ListView選択時では System.Windows.Forms.ListView.SelectedIndexCollectionのindexesのIndicesArrayは[0]で数字を返していません。 そのため、 foreach (int index in indexes) { get_index += this.listView1.Items[index].Index; } 内はindexesのIndicesArrayで数字が返されていないためスルーされていました。 System.Windows.Forms.ListView.SelectedIndexCollectionで1回目は選択時の数字を返し、2回目選択時には返していません。 1回目は返すが2回目は返さない、ということはありえるんでしょうか。 よろしくお願いします。 | ||||
|
投稿日時: 2006-03-08 22:13
数字を返さないで、どうなっているの? |
1