For Each 〜で・・・

解決


てぃ  2012-08-23 09:45:27  No: 147759  IP: [192.*.*.*]

For Each r As DataGridViewRow In DataGridView1.SelectedRows
〜〜
Next r
で、選択したデータグリッドビューの値を取得しているのですが、複数行を選択した場合、表の下→上の順で取得してしまいます。

表に表示されている順序で取得したいのですが、どうすればよいでしょうか?

編集 削除
魔界の仮面弁士  2012-08-23 13:40:09  No: 147760  IP: [192.*.*.*]

> 表の下→上の順で取得してしまいます。
そうとは限らないと思いますよ。Ctrl を押しながら飛び飛びに選択すると、
7 → 1  → 4  → 9  → 12 といった順番になることもありますし。

> 表に表示されている順序で取得したいのですが、どうすればよいでしょうか?

行番号で並び替えて取得するか…

Dim q = From r As DataGridViewRow In DataGridView1.SelectedRows Order By r.Index
For Each r In q
    '  :
    '  :
Next

もしくは、For〜Next で選択行を拾うとか、かな?

For rowIndex = 0 To DataGridView1.Rows.Count
    Dim r = DataGridView1.Rows(rowIndex)
    If Not r.Selected Then Continue For
    '  :
    '  :
Next

編集 削除
てぃ  2012-08-27 12:51:54  No: 147761  IP: [192.*.*.*]

お返事ありがとうございます。
無事解決しました。

たびたびですが、DataGridViewで別の問題にあたりましたので、新規に質問
させていただきます。

編集 削除