For Each 〜で・・・

解決


てぃ  2012-08-23 18:45:27  No: 147759

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

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


魔界の仮面弁士  2012-08-23 22:40:09  No: 147760

> 表の下→上の順で取得してしまいます。
そうとは限らないと思いますよ。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 21:51:54  No: 147761

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加