UltraGrid MouseDown 事件将列大小调整与其他左键单击分开
UltraGrid MouseDown event separate column resize from other left clicks
我有一个显示一些数据的基础设施超网格组件。捕获的事件之一是 MouseDown 事件。
当按下鼠标左键时,这可能意味着用户已经选择了一个项目,或者当前正在拖动列 headers。
该元素是通过使用 ElementFromPoint 方法(见下文)来识别的。但是当我调整列 header 的大小时,此方法仍将 return 列表中的第一个数据元素。我需要知道用户何时修改列宽而不是选择或拖动项目。这在这一点上可能吗?
Private Sub ugTask_MouseDown1(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ugTask.MouseDown
Select Case e.Button
Case MouseButtons.Left
Try
Dim aUIElement As Infragistics.Win.UIElement = ugTask.DisplayLayout.UIElement.ElementFromPoint(New Point(e.X, e.Y))
m_aRow = aUIElement.GetContext(GetType(Infragistics.Win.UltraWinGrid.UltraGridRow))
它并不完美,但我通过检查游标类型找到了解决此问题的方法。光标唯一会改变的时间是当我尝试调整列的大小时。所以现在我可以做
If Not cursor.Current = Cursors.Default Then
Return
End If
我有一个显示一些数据的基础设施超网格组件。捕获的事件之一是 MouseDown 事件。 当按下鼠标左键时,这可能意味着用户已经选择了一个项目,或者当前正在拖动列 headers。
该元素是通过使用 ElementFromPoint 方法(见下文)来识别的。但是当我调整列 header 的大小时,此方法仍将 return 列表中的第一个数据元素。我需要知道用户何时修改列宽而不是选择或拖动项目。这在这一点上可能吗?
Private Sub ugTask_MouseDown1(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ugTask.MouseDown
Select Case e.Button
Case MouseButtons.Left
Try
Dim aUIElement As Infragistics.Win.UIElement = ugTask.DisplayLayout.UIElement.ElementFromPoint(New Point(e.X, e.Y))
m_aRow = aUIElement.GetContext(GetType(Infragistics.Win.UltraWinGrid.UltraGridRow))
它并不完美,但我通过检查游标类型找到了解决此问题的方法。光标唯一会改变的时间是当我尝试调整列的大小时。所以现在我可以做
If Not cursor.Current = Cursors.Default Then
Return
End If