【发布时间】:2011-07-11 15:53:38
【问题描述】:
我有一个名为 lvList 的列表视图,两个文本框分别名为 txtNumber 和 txtName。
LIstView 的属性(我有 更改):
FullRowSelect = True
多选 = 假
当我选择一行时,我希望相应的 Number 和 Item-Name 显示在下面的文本框中。我怎样才能做到这一点?
在 VS-2010 (Winforms) 中工作
【问题讨论】:
我有一个名为 lvList 的列表视图,两个文本框分别名为 txtNumber 和 txtName。
LIstView 的属性(我有 更改):
FullRowSelect = True
多选 = 假
当我选择一行时,我希望相应的 Number 和 Item-Name 显示在下面的文本框中。我怎样才能做到这一点?
在 VS-2010 (Winforms) 中工作
【问题讨论】:
假设您有某种对象位于某种集合中,该集合填充了 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'。
lvList.SelectedItems[0] 错误的语言潜入我的示例。
你可以试试这样的:
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
(我没有编译这个,所以它可能有错误)
【讨论】: