使用鼠标点击事件获取ListViewItem文本

问题描述:

我想使用listview填充数据,然后使用鼠标点击事件来填充一些文本框与数据。我抬头一看MSDN中的例子:使用鼠标点击事件获取ListViewItem文本

ListViewItem theClickedOne = listView1.GetItemAt(e.X, e.Y); 
ListViewItem theClickedtwo = listView1.FocusedItem; 
if (theClickedOne != null) 
{ 
    MessageBox.Show(theClickedtwo.ToString()); 
    //do your thing here. 
    //there is a reference to the listview item we clicked on 
    //in our theClickedOne variable. 
} 

,但我不能想想办法,以区分我用,因为我在程序的拳头列是相同的listviewitems使用它,它只会给我是一个字符串与它的名字(第一列)。我想有一些类似于下一个例子,但对于树视图。

void treeView1_NodeMouseClick(Object sender, TreeNodeMouseClickEventArgs e) 
{ 
    MessageBox.Show(e.Node.Text); 
} 
+2

当谈到区分UI元素时,我通常会设置元素的Tag属性。仔细查看一下。 – helb 2014-12-04 07:51:13

+0

“我想要类似于下一个示例,但是对于treeview。” - 什么?你想用ListView控件还是TreeView来做到这一点?直到最后一条语句为止,大部分帖子似乎都说'ListView'。 – 2014-12-04 07:56:02

+0

我知道,在我的代码中,我也使用treeview和mouseclick事件,并且我更容易得到如何使用它并识别strings.I认为listview将是相同的,它是不同的。 – user3365107 2014-12-04 08:45:43

当填充您ListView,设定的项目,例如的Tag财产

newItem.Tag = "Item 1"; 

Tag酒店式object,所以你可以使用你想在这里,以确定该项目任何东西。处理鼠标点击事件时,只需再次检查Tag的值:

if((string)(clickedItem.Tag) == "Item 1") 
{ 
    // do stuff for this specific item. 
} 
+0

我使用标签将它作为类的指针传递,如下所示:'Class p =(Class)(theClickedtwo.Tag);'它运行得很好。 – user3365107 2014-12-04 09:29:02