C#中ListView易错的方法

现在有一个ListView(lv1),有2列。

ListViewItem lvi = new ListViewItem();

lvi.Text = "语文";

lvi.SubItems.Add("99");

lvi.Items.Add(lvi);

lvi = new ListViewItem();

lvi.Text = "数学";

lvi.SubItems.Add("100");

lvi.Items.Add(lvi);

有同学这么查找:ListViewItem[] lvis = lvi.Items.Find("数学", true);

        或者这样:ListViewItem[] lvis = lvi.Items["数学"];

这样都得不到结果。因为Find中的第一个参数是Key,就是ListViewItem的Name,因为ListView中的两项都没有设置Name,所以不可能得到想要的结果。 lvi.Items["数学"];也是一样的道理。

如果将代码做如下修改:

lvi = new ListViewItem();

lvi.Text = "数学";

lvi.Name = "数学";

lvi.SubItems.Add("100");

lvi.Items.Add(lvi);

则能得到想要的结果。

如果仅仅想根据文本查找到相关的行的话,建议使用FindItemWithText方法:

ListViewItem lvItem = this.lv1.FindItemWithText("数学", true, 0);

原文地址:https://www.cnblogs.com/besti/p/4335395.html