tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^6: CheckedListBox内での移動
投稿日: 2009/09/02(Wed) 16:55
投稿者ダンボ
> > 問題点:原案はListBoxだったからこれで良いが、bin さんの希望はCheckedListBox。
> >     Checkedステータスの移動は追加しなければいけない。

下記でうまく動いたからご参考までに(苦労しないと勉強にならないか?)

Public Class Form1
    Dim listSelectNo As Integer

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim str As String() = {"aaa", "bbb", "ccc", "ddd", "eee"}
        CheckedListBox1.Items.AddRange(str)
    End Sub


    Private Sub CheckedListBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles CheckedListBox1.MouseDown
        '        //移動元のインデックスを取得
            Dim list As CheckedListBox = CType(sender, CheckedListBox)
            listSelectNo = list.SelectedIndex
    End Sub

    Private Sub CheckedListBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles CheckedListBox1.MouseUp
        '        //移動先のインデックスを取得
        Dim list As CheckedListBox = CType(sender, CheckedListBox)
        Dim listChangeNo As Integer = list.SelectedIndex
        If listChangeNo <> listSelectNo Then
            Dim tmpData As Object, tmpState As CheckState
            '        //移動元のデータを取得
            tmpData = list.Items(listSelectNo)
            tmpState = list.GetItemCheckState(listSelectNo)
            '        //移動元のデータを削除
            list.Items.RemoveAt(listSelectNo)
            '        //移動先にデータを追加
            list.Items.Insert(listChangeNo, tmpData)
            list.SetItemCheckState(listChangeNo, tmpState)
            '        //選択先のインデックスを指定
            list.SelectedIndex = listChangeNo
        End If
    End Sub
End Class

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。