DOBON.NETプログラミング道掲示板
(現在 過去ログ1 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33081 / inTopicNo.1)  DataGridViewの選択中の行(複数)を一つ上に移動する方法
  
□投稿者/ ねここねこ 一般人(1回)-(2015/08/22(Sat) 09:36:34)
  • アイコン環境/言語:[OS : Windows 7 / 言語 : Visual Basic .NET / .NET Framework : 4.6] 
    分類:[.NET] 

    2015/08/22(Sat) 09:37:36 編集(投稿者)

    【解決したい問題】

    こんにちは。

    Visual Studio 2015のVBのDataGridViewの操作について質問です。

    DataGridViewの選択中の行を一つ上に移動するサンプルコードを知りたいです。
    画像の3と4の行を1と2の間に移動したいです。
    (選択中の行が複数行の場合でも移動できるようにしたいです。)

    よろしくお願いします。

    【解決するために何をしたか】

    本サイトを参考に調べられたところまで作ったコード
    Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

    '列2×行5を追加
    DataGridView1.ColumnCount = 2
    DataGridView1.RowCount = 5

    '列のヘッダーに文字を設定
    DataGridView1.Columns(0).HeaderText = "A"
    DataGridView1.Columns(1).HeaderText = "B"

    'セルに値を設定
    Dim i As Integer
    For i = 0 To DataGridView1.Rows.Count - 1
    '行のヘッダーに文字を設定
    DataGridView1.Rows(i).HeaderCell.Value = Convert.ToString(i + 1)
    'セルに文字を設定
    DataGridView1(0, i).Value = "A" & i + 1
    DataGridView1(1, i).Value = "B" & i + 1
    Next i

    'DataGridView1.Rows(1).Cells(1).Value = "TEST"

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    '選択中の行
    For Each r As DataGridViewRow In DataGridView1.SelectedRows
    '選択中の行を1つ上に移動
    '---------ここ----------
    Next r

    End Sub
    End Class

    【追加事項】

    ※今週からプログラムを始めました。
300×291 => 250×242
イメージ
10-Form1.png
/16KB
引用返信 削除キー/
■33085 / inTopicNo.2)  Re[1]: DataGridViewの選択中の行(複数)を一つ上に移動する方法
□投稿者/ shu 大御所(468回)-(2015/09/01(Tue) 08:21:39)
  • アイコン
    No33081に返信(ねここねこさんの記事)
    
    移動したい行をDataGridView1.SelectedRowsにより取得
    DataGridView1.Rows.Removeにより一旦削除
    移動先にInsertRangeで挿入
    
            Dim rows = (From r In DataGridView1.SelectedRows.OfType(Of DataGridViewRow)()
                        Order By r.Index).ToArray
    
            '--- 上の行インデックスを取得
            Dim idx1 = rows(0).Index - 1
            '--- 削除
            For Each row In rows
                DataGridView1.Rows.Remove(row)
            Next
            '--- 挿入
            DataGridView1.Rows.InsertRange(idx1, rows)
    

引用返信 削除キー/
■33086 / inTopicNo.3)  Re[2]: DataGridViewの選択中の行(複数)を一つ上に移動する方法
□投稿者/ ねここねこ 一般人(2回)-(2015/09/02(Wed) 14:40:36)
  • アイコン
    shuさん
    こんにちは。
    連絡が遅くなり失礼しました。
    さっそく試してみました。
    無事動きました!
    助かりました。
    どうもありがとうございました。
    

解決み!
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -