在列表视图中获取所选子项

时间:2012-11-13 06:45:30

标签: c# winforms

我正在尝试查找ListView的选定SubItem。

我有一个具有以下属性的ListView

View = Details
FullRowSelect = True
GridLines = True
ShowItemToolTips =  True
MultiSelect = False

然后我添加3列和多行,每行包含2个子项以填充每个列。我最终得到了一个像这样的ListView

Header1   | Header2    | Header3
==========+============+===========
Item 1    | Sub1Item1  | Sub2Item1
Item 2    | Sub1Item2  | Sub2Item2
Item 3    | Sub1Item3  | Sub2Item3

如果我将鼠标悬停在某个特定项目上,请说Sub2Item2它将为我提供相应的工具提示“Sub2Item2”。但是我想捕获鼠标单击或鼠标悬停的事件并获取关联的SubItem,以便我可以使用它的Tag属性进行进一步处理。

我已经检查了ItemMouseHover()事件的参数,但找不到任何可以执行此操作的内容,也无法在线搜索。

[编辑澄清]我试图挂钩一个事件,如SelectedIndexChange或MouseUp(任何鼠标点击相关事件都很好)和获取当前选定的SubItem 。把它想象成电子表格,当我点击一个单元格(SubItem)时我想得到单元格本身(SubItem)而不是整个行(ListViewItem)

2 个答案:

答案 0 :(得分:3)

我认为ListView.HitTest方法正是您所需要的。

答案 1 :(得分:0)

在你的情况下SelectedItems属性应该有效,直到考虑到Hover。对于悬停事件,有一个名为HoverSelection的属性。