我有一个名为lvList的List-View,两个分别名为txtNumber和txtName的文本框。
LIstView的属性(我有 改变后的):
FullRowSelect = True
MultiSelect = False
当我选择一行时,我希望相应的数字和项目名称显示在下面的文本框中。我怎样才能做到这一点?
在VS-2010(Winforms)中工作
答案 0 :(得分:1)
假设你有某种对象在某种集合中,那就是listviews数据源
出于示例目的,我们假设您的课程如下所示
public class YourClass()
{
public Integer Number {get; set;}
public String ItemName {get; set;}
}
在ListView的SelectedIndexChanged
事件处理程序
var selectedItem = lvList.SelectedItems[0];
txtNumber.Text = selectedItem.Number.ToString();
txtName.Text = selectedItem.ItemName.ToString();
现在,如果您只是将项目分配到列表视图中的特定列,请告诉我,我可以告诉您如何执行此操作。
答案 1 :(得分:1)
您可以尝试以下内容:
foreach ( ListViewItem item in lvList.SelectedItems)
{
number = item.SubItems[0].Text;
name = item.SubItems[1].Text;
}
或者在您的情况下,如果您始终只选择了一个项目:
String number,name;
ListViewItem item = lvList.SelectedItems[0];
if ( item != null)
{
number = item.SubItems[0].Text;
name = item.SubItems[1].Text;
}
<强>更新强>: 我通常不会在VB中编写代码,但它应该是这样的:
Dim number as String
Dim name as String
Dim item as ListViewItem = lvList.SelectedItems[0]
if item != null then
number = item.SubItems[0].Text
name = item.SubItems[1].Text
end if
(我没有编译这个,所以它可能有错误)