2012-09-26 80 views
2

我是Web开发人员,正在开发WinForms中的一部分项目。所以我的问题可能是一个基本问题。试着忍受它。在列表视图中选择一行

我在我的页面上有两个列表视图和一个适用于两者的删除按钮。

问题。

  1. 我无法在列表视图中选择一行,当我运行我的程序时,可能是它需要的某些属性?
  2. 如果我能够选择要检测哪个列表视图项目的行,那么我该怎么做?
  3. 我有三列,并使用下面的代码绑定了数据。

    listView1.Columns.Add("ID",20); 
        listView1.Columns.Add("Name",40); 
        listView1.Columns.Add("Mobile",40); 
    
    
        foreach (var item in dataList) 
        { 
         newItem = new ListViewItem(); 
         newItem.SubItems.Add(item.ID.ToString()); 
         newItem.SubItems.Add(item.Name); 
         newItem.SubItems.Add(item.Mobile.ToString()); 
         listView1.Items.Add(newItem); 
        } 
    

ID栏留空和数据开始在这些意义上绑定。

ID Name Mobile 
    1 abc 
    2 xyz 

那么我该如何正确显示数据呢?

  1. 最后,我想用我的ID列删除数据。所以如果我给width=0,这是隐藏一列的最好方法吗?

回答

6
  1. 请参阅ListView.FullRowSelect属性。
  2. 请参阅ListView.SelectedItems财产。请注意,默认ListView允许多选。
  3. 通过构造函数设置项目文本:newItem = new ListViewItem(item.ID.ToString());,然后添加其余子项目(item.ID除外)。
  4. 如果要删除列,只需从列集合中删除它。
+0

感谢您的回答。 point no 1,3 has been resolved.on point no 2.我需要一些输入,这就是我在做什么if(listView1.SelectedItems.Count> 0) { foreach(var item in listView1.SelectedItems) { //如何提取隐藏列的值ie.ID //多选择选项设置为假 } } – ankur

+0

@ankur:不存储值,你不想显示*视图*项目。如果你只是想稍后使用'item.ID'而不显示它,则将'ListViewItem'绑定到数据项:'newItem.Tag = item'。稍后,您可以通过'((YourDataItemType)item.Tag).ID'获取它。 – Dennis

+0

带标签的方法很漂亮,但我无法获得价值。我也经历了很多删除具有多列的选定行的例子,似乎没有什么可以做的。我隐藏的身份证实际上用于同样的事情。所以你可以帮我在这个我的代码删除button.foreach(ListViewItem项目listView2.SelectedItems) { var id =((int)item.Tag).ID;//此行给出错误 listView2.Items。除去项目); } – ankur