C# 如何通过编程判断是否在.NET ListView中单击了组标题?

C# 如何通过编程判断是否在.NET ListView中单击了组标题?,c#,.net,C#,.net,我们要做的是确定是否单击了组标题,如Vista/7屏幕上“我的电脑”中的“硬盘驱动器”或“具有可移动存储的设备”标题。这必须在XP中工作 我们可以检测鼠标何时在该区域,然后捕获一次单击,但我们想知道是否有特定事件。有一篇文章实现了自定义ListView控件,我相信作者已经解决了单击组的问题。还有一个显示点击了哪个标题,虽然我不是100%确信这是在一个组标题的上下文中…但我可以想象,对于组标题,这将是相同的原则 希望这有帮助, 顺致敬意, 汤姆。以下是我使用的,希望能有所帮助: Privat

我们要做的是确定是否单击了组标题,如Vista/7屏幕上“我的电脑”中的“硬盘驱动器”或“具有可移动存储的设备”标题。这必须在XP中工作


我们可以检测鼠标何时在该区域,然后捕获一次单击,但我们想知道是否有特定事件。

有一篇文章实现了自定义ListView控件,我相信作者已经解决了单击组的问题。还有一个显示点击了哪个标题,虽然我不是100%确信这是在一个组标题的上下文中…但我可以想象,对于组标题,这将是相同的原则

希望这有帮助, 顺致敬意,
汤姆。

以下是我使用的,希望能有所帮助:

   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

这是我们正在寻找的,但是我们担心它在GPL下,我们也必须在GPL下发布我们的代码。(关于第一篇文章)这只是我们担心的一件事,会让我们在以后的法律诉讼中遇到麻烦:p