按字符串而不是按索引获取子项

本文关键字:获取 索引 字符串 | 更新日期: 2023-09-27 17:50:46

我有一个简单的ListView有两列:ID | Name

我将从选定的行获取ID和Name:

ListViewItem item = listView1.SelectedItems[0];
MessageBox.Show(item.subItem[0].Text + " " + item.subItem[1].Text);

是否有办法不通过数字(0或1),而是通过namecoluml代替,类似于这个datareader的例子?:

sqlite_cmd.CommandText = "select * from mytable;";
sqlite_datareader = sqlite_cmd.ExecuteReader();
// ...
string password = sqlite_datareader["password"].ToString();

对于listView, details:

MessageBox.Show(item.subItem["ID"].Text + " " + item.subItem["Name"].Text);

有办法吗?

按字符串而不是按索引获取子项

SOLVED:

       item.SubItems[listView1.Columns.IndexOf(ID)].Text

: -)

您可以完全按照您所演示的那样做,但是您使用的字符串必须是相应ColumnHeader的Name属性的值,而不是Text。Name和Text很可能是相同的,但是Name才是最重要的。

更正:它实际上是ListViewSubItem的名称需要指定,而不是相应的ColumnHeader的名称。