【问题标题】:How to retrieve data from the selected row?如何从选定的行中检索数据?
【发布时间】:2011-07-11 15:53:38
【问题描述】:

我有一个名为 lvList 的列表视图,两个文本框分别名为 txtNumber 和 txtName。

LIstView 的属性(我有 更改):

FullRowSelect = True

多选 = 假

当我选择一行时,我希望相应的 Number 和 Item-Name 显示在下面的文本框中。我怎样才能做到这一点?

在 VS-2010 (Winforms) 中工作

【问题讨论】:

    标签: winforms listview textbox


    【解决方案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();
    

    现在,如果您只是将项目分配给列表视图中的特定列,请告诉我,我可以向您展示如何执行此操作。

    【讨论】:

    • 错误:'SelectedItem' is not a member of 'System.Windows.Forms.ListView'
    • @SpongeBob SquarePants,是的,这应该是 lvList.SelectedItems[0] 错误的语言潜入我的示例。
    【解决方案2】:

    你可以试试这样的:

    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
    

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

    【讨论】:

    • 你能用Vb代码更新答案吗,我不擅长C#
    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 2012-06-02
    • 2021-07-26
    • 2015-07-19
    相关资源
    最近更新 更多