我有一个显示一些数据的infragistics ultragrid组件。捕获的事件之一是MouseDown事件。 按下鼠标左键时,这可能意味着用户已选择项目,或者当前正在拖动列标题。
使用ElementFromPoint方法识别元素(见下文)。但是当我调整列标题的大小时,此方法仍将返回列表中的第一个数据元素。我需要知道用户何时修改列宽而不是选择或拖动项目。这可能吗?
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))
答案 0 :(得分:0)
这并不完美,但我通过检查光标类型找到了解决方法。光标改变的唯一时间是我尝试调整列的大小。所以现在我可以做到
If Not cursor.Current = Cursors.Default Then
Return
End If