关于listView 鼠标悬停获取当前Item问题
如题:
private void lvwBrowser_MouseHover(object sender, System.EventArgs e)
{
Point curPos = lvwBrowser.PointToClient(Cursor.Position);
ListViewItem lvwItem = lvwBrowser.GetItemAt(curPos.X,curPos.Y);
if(lvwItem != null)
{
int count = 0;
for(int i=0;i <lvwBrowser.Columns.Count;i++)
{
count += lvwBrowser.Columns[i].Width;
if(curPos.X <count)
{
string strName = lvwItem.SubItems[i].Text;
break;
}
}
}
}
请问为什么下面对象
ListViewItem lvwItem = lvwBrowser.GetItemAt(curPos.X,curPos.Y);
无论停在item上或不停在item上都为null 是有什么设置问题吗?
有什么更好的办法取得鼠标悬停item上的对象呢? 谢谢!!
------解决方案--------------------mark
------解决方案--------------------没有问题的,就像你的代码中写的一样就可以获取到鼠标指针下的ListviewItem了。我的测试代码和你的基本一样就可以的。我的代码如下:
private void listView1_MouseHover(object sender, EventArgs e)
{
Point curPos = this.listView1.PointToClient(Control.MousePosition);
ListViewItem lvwItem = this.listView1.GetItemAt(curPos.X,curPos.Y);
if (lvwItem != null)
{
Console.WriteLine( "aa ");
}
}
我使用的Control.MousePosition和你的Cursor.Position取值一样。