1. Visual Basic.Net

Implementasi drag and drop pada listbox Visual Basic.Net

Pengguna Windows jatuh ke dalam dua kategori umum: mereka yang lebih memilih untuk menggunakan keyboard dan mereka yang lebih memilih untuk menggunakan mouse. Programmer telah diajarkan untuk menjaga kebutuhan pengguna Keyboard dengan menyediakan shortcut, tetapi kebutuhan pengguna mouse sebagian besar telah diabaikan. Programmer cenderung menjadi pengguna keyboard, sehingga penekanan pada fitur keyboard lebih di utamakan.

Drag and Drop Listbox

Satu hal yang pengguna mouse harapkan adalah kemampuan untuk drag dan drop pada aplikasi yang digunakan. Jika kita melihat sebagian besar aplikasi utama di Windows, drag dan drop ada di mana-mana. Sebagai contoh, pengguna yang terbiasa drag dan drop file di Windows Explorer. Drag dan drop pada dasarnya sama seperti copy dan paste menggunakan mouse daripada keyboard. Oleh karena itu, pada artikel kali ini kita akan membahas bagaimana Implementasi drag and drop pada listbox Visual Basic.Net.

Syntax

Skenario sederhana dapat kita implementasikan pada sebuah listbox. dimana kita akan mengubah urutan dari item listbox dengan menggunakan drag and drop.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ListBox1.AllowDrop = True
    ListBox2.AllowDrop = True
End Sub

Private Sub listbox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown, ListBox2.MouseDown

    Dim lst As ListBox = DirectCast(sender, ListBox)

    If e.Button = Windows.Forms.MouseButtons.Left Then
        Dim index As Integer = lst.IndexFromPoint(e.X, e.Y)
        If index <> ListBox.NoMatches Then
            Dim item As String = lst.Items(index)
            Dim drop_effect As DragDropEffects = lst.DoDragDrop(lst.Items(index), DragDropEffects.Move Or DragDropEffects.Copy)

            If drop_effect = DragDropEffects.Move Then
                If lst.Items(index) = item Then
                    lst.Items.RemoveAt(index)
                Else
                    lst.Items.RemoveAt(index + 1)
                End If
            End If
        End If
    End If

End Sub

Private Sub listbox1_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragOver, ListBox2.DragOver

    If Not (e.Data.GetDataPresent(GetType(System.String))) Then
        e.Effect = DragDropEffects.None
    ElseIf (e.AllowedEffect And DragDropEffects.Move) = DragDropEffects.Move Then
        e.Effect = DragDropEffects.Move
    End If

End Sub

Private Sub listbox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop, ListBox2.DragDrop

    If e.Data.GetDataPresent(GetType(System.String)) Then
        If (e.Effect = DragDropEffects.Copy) Or (e.Effect = DragDropEffects.Move) Then
            Dim lst As ListBox = DirectCast(sender, ListBox)
            Dim item As Object = CType(e.Data.GetData(GetType(System.String)), System.Object)
            Dim pt As Point = lst.PointToClient(New Point(e.X, e.Y))
            Dim index As Integer = lst.IndexFromPoint(pt.X, pt.Y)
            If index = ListBox.NoMatches Then
                lst.Items.Add(item)
            Else
                lst.Items.Insert(index, item)
            End If
        End If
    End If

End Sub

Kode diatas merupakan contoh sederhana mengenai Implementasi drag and drop pada listbox Visual Basic.Net, bisa dikembangkan lagi untuk kebutuhan lain.

Comments to: Implementasi drag and drop pada listbox Visual Basic.Net

    Your email address will not be published. Required fields are marked *

    Attach images - Only PNG, JPG, JPEG and GIF are supported.