У меня возникла небольшая проблема с задержкой, когда я устанавливаю флажок и пытаюсь перетащить. Когда я выбираю один флажок и пытаюсь переместить его, он не будет двигаться. Если у меня есть этот флажок и нажмите на другую строку, попробуйте переместить ее, она будет работать. Он работает одинаково независимо от того, сколько я проверю, он не получит новую строку, не щелкнув где-то еще в первую очередь. Нужно ли мне добавить другое событие для обработки или получения того, что флажок теперь проверен?Задержка получения события click
Private Sub datagridview_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles datagridview.MouseDown
mouseDownPosition = e.Location
End Sub
Private Sub datagridview_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles datagridview.MouseMove
If CheckMouseMovement(sender, datagridview, e) Then
listofBuilds = New List(Of Build)
For Each row As DataGridViewRow In dataGridView.Rows
If Convert.ToBoolean(row.Cells.Item(0).Value) Then
Dim t As Build = DirectCast(row.DataBoundItem, Build)
listofBuilds.Add(t)
End If
Next
If listofBuilds.Count > 0 Then
dataGridView.EndEdit()
dataGridView.DoDragDrop(sender, dropEffect)
End If
End If
End Sub
Private Sub TabControl_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TabControl.DragEnter
e.Effect = DragDropEffects.All
End Sub
Private Sub TabControl_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TabControl.DragDrop
Dim DropPage As TabPage = GetTabPageByTab(TabControl.PointToClient(New Point(e.X, e.Y)))
If DropPage IsNot TabControl.SelectedTab Then
If DropPage Is Page1 Then
If DropPage Is Page2 Then
If DropPage Is Page3 Then
//etc
End If
End If
End Sub
Private Function GetTabPageByTab(ByVal point As Point) As TabPage
For i As Integer = 0 To TabControl.TabPages.Count - 1
If TabControl.GetTabRect(i).Contains(point) Then
Return TabControl.TabPages.Item(i)
End If
Next
Return Nothing
End Function
Попробуйте добавить вызов ['datagridview.EndEdit()'] (https://msdn.microsoft.com/en-us/library/ms158620%28v=vs.110%29.aspx) в начале метод 'datagridview_MouseMove'. – Mark
Не уверен, что относится к задержке, но попробуйте установить свойство EditMode вашей сетки EditOnEnter. – LarsTech
@Mark спасибо, что сработали. Можете ли вы выразить это как ответ, чтобы я мог его принять. –