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

タイトル Re^4: CheckedListBox内での移動
投稿日: 2009/09/02(Wed) 09:50
投稿者ダンボ
> > 負えません。2番目は私もみつけたのですが、C#なのであきらめました。
> > これをVB.netでおきかえるのでしょうか。
> >  適切な方法があればお教えください。


C#とVB.Netは親和性がいいです。Cの仮面を持った.NetFramework、VBの仮面を持った.NetFrameworkですから。
だから自動変換も可能でしょう。下記はなるべく原文に忠実に手動翻訳してみました。

問題点:原案はListBoxだったからこれで良いが、bin さんの希望はCheckedListBox。
    Checkedステータスの移動は追加しなければいけない。
    更にMouseDownあたりに一工夫加えないとCheck操作が無視される。

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

        Dim tmpData As Object
        '        //移動元のデータを取得
        tmpData = list.Items(listSelectNo)
        '        //移動元のデータを削除
        list.Items.RemoveAt(listSelectNo)
        '        //移動先にデータを追加
        list.Items.Insert(listChangeNo, tmpData)
        '        //選択先のインデックスを指定
        list.SelectedIndex = listChangeNo
    End Sub
End Class

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

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