リストビューで行を入れ替える(上へ、下へボタンの実装)

カテゴリ: VB.NET
投稿日時:2009/05/20 12:30:35
上へボタン、下へボタンでリストビューの行を入れ替えるには、以下のようにします。

Public Class ListViewForm

    ''' <summary>
    ''' 上へボタンクリック
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub UpButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UpButton.Click
        'アイテムが選択されていない場合抜ける
        If ListView1.SelectedItems.Count = 0 Then
            Return
        End If

        '先頭のアイテムが選択されている場合抜ける
        If ListView1.SelectedItems(0).Index = 0 Then
            Return
        End If

        '挿入先のインデックス
        Dim insertPosition As Integer = ListView1.SelectedItems(0).Index - 1

        '選択されたアイテム
        Dim itm As ListViewItem = ListView1.SelectedItems(0)

        '選択されたアイテムを削除する
        ListView1.Items.Remove(itm)

        'アイテムを挿入する
        ListView1.Items.Insert(insertPosition, itm)

    End Sub

    ''' <summary>
    ''' 下へボタンクリック
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub DownButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DownButton.Click
        'アイテムが選択されていない場合抜ける
        If ListView1.SelectedItems.Count = 0 Then
            Return
        End If

        '最後のアイテムが選択されている場合抜ける
        If ListView1.SelectedItems(0).Index = ListView1.Items.Count - 1 Then
            Return
        End If

        '挿入先のインデックス
        Dim insertPosition As Integer = ListView1.SelectedItems(0).Index + 1

        '選択されたアイテム
        Dim itm As ListViewItem = ListView1.SelectedItems(0)

        '選択されたアイテムを削除する
        ListView1.Items.Remove(itm)

        'アイテムを挿入する
        ListView1.Items.Insert(insertPosition, itm)

    End Sub

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

スポンサード リンク