如何从选定的行中检索数据?

时间:2011-03-09 06:31:21

标签: winforms listview textbox

我有一个名为lvList的List-View,两个分别名为txtNumber和txtName的文本框。

LIstView的属性(我有  改变后的):

  

FullRowSelect = True

     

MultiSelect = False

当我选择一行时,我希望相应的数字和项目名称显示在下面的文本框中。我怎样才能做到这一点?

enter image description here

在VS-2010(Winforms)中工作

2 个答案:

答案 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

(我没有编译这个,所以它可能有错误)