28-03-13, 02:26 AM
كود :
#Region " Swap ListBox Items by DragDrop "
Private Sub List_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox2.MouseDown, ListBox1.MouseDown
If Windows.Forms.MouseButtons.Right Then
sender.SelectedIndex = sender.IndexFromPoint(e.X, e.Y)
If sender.SelectedIndex < 0 Then Exit Sub
sender.DoDragDrop(sender.SelectedIndex.ToString, DragDropEffects.Move)
Else
sender.SelectedIndex = sender.IndexFromPoint(e.X, e.Y)
If sender.SelectedIndex < 0 Then Exit Sub
sender.DoDragDrop(sender.SelectedIndex.ToString, DragDropEffects.None)
End If
End Sub
Private Sub List_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox2.DragOver, ListBox1.DragOver
If Windows.Forms.MouseButtons.Right Then
e.Effect = DragDropEffects.Move
Dim pt As Point = sender.PointToClient(New Point(e.X, e.Y))
Dim drop_index As Integer = sender.IndexFromPoint(pt.X, pt.Y)
sender.SelectedIndex = drop_index
End If
End Sub
Private Sub List_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox2.DragDrop, ListBox1.DragDrop
If sender.SelectedIndex < 0 Then Exit Sub
Dim SelectedIndex As Integer = sender.SelectedIndex
Dim i1 As Integer = Int(e.Data.GetData(DataFormats.Text).ToString), i2 As Integer = sender.SelectedIndex
If i1 > i2 Then
Dim a As Integer = i1
i1 = i2 : i2 = a
End If
SwapItems(ListBox2, i1, i2)
SwapItems(ListBox1, i1, i2)
sender.SelectedIndex = SelectedIndex
End Sub
Private Sub SwapItems(ByVal ListBox As ListBox, ByVal SelectedIndex1 As Integer, ByVal SelectedIndex2 As Integer)
Dim itm1 As Object = ListBox.Items(SelectedIndex1)
Dim itm2 As Object = ListBox.Items(SelectedIndex2)
ListBox.Items.RemoveAt(SelectedIndex1)
ListBox.Items.Insert(SelectedIndex1, itm2)
ListBox.Items.RemoveAt(SelectedIndex2)
ListBox.Items.Insert(SelectedIndex2, itm1)
End Sub
#End Region
لذا جربت ودع If Windows.Forms.MouseButtons.Right Then فى Mouse Down
ولم ينفع برضه هل من هل