我们要做的是确定是否已单击组标题,例如“Vista / 7”屏幕上“我的电脑”中的“硬盘驱动器”或“带可移动存储的设备”标题。这必须在XP中工作。
我们可以检测到鼠标在该区域的时间,然后捕获点击,但我们想知道是否存在特定事件。
答案 0 :(得分:1)
有一篇文章实现了一个自定义的ListView控件,我相信作者已经解决了点击一个组here的问题。还有另一个article显示点击了哪个标题虽然我不是100%自信,如果它是在组标题的上下文中......但我想它对于组标题将是相同的原则..
希望这有帮助, 最好的祝福, 汤姆。
答案 1 :(得分:0)
这是我使用的,希望它会有所帮助:
Private Sub ListView1_MouseDown(sender As Object, e As MouseButtonEventArgs) Handles ListView1.PreviewMouseDown
If e.LeftButton = MouseButtonState.Pressed Then
Dim pt As Point = e.GetPosition(Me)
Dim ListViewComponent As Object = System.Windows.Media.VisualTreeHelper.HitTest(Me, pt)
If ListViewComponent.visualhit.ToString = "System.Windows.Controls.Border" Then
' mouse down event was on header row
Else
' mouse down event was not on the header row
End If
ListViewComponent = Nothing
pt = Nothing
End If
End Sub