【发布时间】:2016-02-06 01:59:17
【问题描述】:
我对@987654322@ 和GridView 的MouseDown 事件有疑问。
如果用户按 control + shift + click 列标题是选择列,并且单击最左上角将选择所有行。我设法做到了,但任何一个都适用于我的代码。 if-else 语句的逻辑似乎有问题。任何人都可以帮忙吗?
Private Sub gridView1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles GridView1.MouseDown
If Control.ModifierKeys = (Keys.Control) Then
Dim view As GridView = CType(sender, GridView)
Dim hInfo As GridHitInfo = view.CalcHitInfo(e.Location)
If hInfo.InColumn Then
view.ClearSelection()
SelectCells(hInfo.Column)
Else
Return
End If
CType(e, DXMouseEventArgs).Handled = True
ElseIf Control.ModifierKeys = Nothing Then
Dim view As GridView = CType(sender, GridView)
view.ClearSelection()
Return
Else
Dim view2 As GridView = CType(sender, GridView)
Dim hitInfo As GridHitInfo = view2.CalcHitInfo(e.Location)
If hitInfo.HitTest = GridHitTest.ColumnButton Then
view2.SelectAll()
End If
CType(e, DXMouseEventArgs).Handled = True
End If
End Sub
Private Sub SelectCells(ByVal column As GridColumn)
Dim view As GridView = CType(column.View, GridView)
view.BeginSelection()
For i As Integer = 0 To column.View.RowCount - 1
view.SelectCell(i, column)
Next i
view.EndSelection()
End Sub
【问题讨论】:
-
您的
SelectAll正在使用Alt或Shift修饰符。
标签: vb.net winforms gridview devexpress