获取 ListView 项的子项相对于 Form 的坐标

Posted

技术标签:

【中文标题】获取 ListView 项的子项相对于 Form 的坐标【英文标题】:Get coordinates of ListView items' subitems relative to the Form 【发布时间】:2014-10-10 12:28:29 【问题描述】:

我有一个ListView,有 4 个项目,每个项目有 3 个子项目。

现在,例如,我想获取第 2 项子项 2 相对于 Form 的坐标(位置)。

我该怎么做?

【问题讨论】:

x 和 y 是的。对于表单。 好像***.com/questions/4998076/… 这样我只能得到 list.PointToScreen(Point.Empty);我想得到 list.Items[1].SubItems[1].PointToScreen(Point.Empty); (但这会产生错误) 是的,貌似SubItem不是控件,所以没有PointToScreen方法。 msdn.microsoft.com/en-us/library/… 【参考方案1】:

您正在寻找ListViewSubItemBounds 属性。下面是该属性的简单用法:

private void listView1_MouseDown(object sender, MouseEventArgs e)

    var bound = listView1.Items[1].SubItems[1].Bounds;

    if (e.X > bound.Left && e.X < bound.Right && e.Y > bound.Top && e.Y < bound.Bottom)
    
        MessageBox.Show("hello world");
    

【讨论】:

很高兴听到它有帮助:) 您也可以使用“bound.Contains (e.Location)”来获得更紧凑的代码。

以上是关于获取 ListView 项的子项相对于 Form 的坐标的主要内容,如果未能解决你的问题,请参考以下文章

vb listview 选中项的列值怎么获取

Android ListView:获取可见项的数据索引

以子菜单项相对于父菜单项将块居中

从具有按钮的 ListView 获取列表项的位置

:walking:为ListView子项添加显示时候 的动画效果

:walking:为ListView子项添加显示时候 的动画效果