【VB.NET】DataGridViewをソートする方法

DataTableを使っている場合

VB
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    
        ' 列追加
        Dim dt As New DataTable()
        dt.Columns.Add("CODE", GetType(String))
        dt.Columns.Add("NAME", GetType(String))
        dt.Columns.Add("PRICE", GetType(Integer))

        'データの追加
        dt.Rows.Add("001", "かぼちゃ", 100)
        dt.Rows.Add("002", "にんじん", 500)
        dt.Rows.Add("003", "じゃがいも", 300)
        dt.Rows.Add("004", "じゃがいも", 200)

        'データソースに作成したDataTableを指定
        DataGridView1.DataSource = dt

        'NAME列、PRICE列の昇順でソート
        dt.DefaultView.Sort = "NAME ASC, PRICE ASC"

    End Sub

DataTableを使っていない場合

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

        With DataGridView1
            '列追加
            .Columns.Add("CODE", "コード")
            .Columns.Add("NAME", "名前")
            .Columns.Add("PRICE", "価格")

            'データ追加
            .Rows.Add("001", "かぼちゃ", 100)
            .Rows.Add("002", "にんじん", 500)
            .Rows.Add("003", "じゃがいも", 300)
            .Rows.Add("004", "じゃがいも", 200)
        End With
        
        '価格列の昇順でソート
        DataGridView1.Sort(DataGridView1.Columns(2), ComponentModel.ListSortDirection.Ascending)

    End Sub

コメント

タイトルとURLをコピーしました