使用列表与文本框

本文关键字:文本 列表 | 更新日期: 2023-09-27 18:11:39

这是我的代码添加到我的列表:

List<string> myList = new List<string>();
private void button1_Click(object sender, EventArgs e)
{
  ListViewItem myList = new ListViewItem(txtBox1.Text);
  myList.SubItems.Add(txtBox2.Text);
  myList.SubItems.Add(txtBox3.Text);
  myList.SubItems.Add(txtBox4.Text);
  listView1.Items.Add(myList);
  txtBox1.Text = "";
  txtBox2.Text = "";
  txtBox3.Text = "";
  txtBox4.Text = "";
}

这将添加到我的列表并清除并允许我添加另一个帖子到我的列表。问题是我希望能够重新填充文本框,以允许我更新列表中的帖子。

为了更清楚地说明我的观点,我的清单如下:

Code | Name | Price | In stock
------------------------------
123    aa     122     2
124    bb     111     5

如果我想要第一篇文章,我是否可以通过标识符将所有数据设置回文本框中或者我是否可以通过索引进行搜索?我希望能够将代码放在第一个文本框,然后点击一个按钮,称为检索填充其他文本字段有点像通过sql表中的唯一键,但我找不到任何信息,无论它是否可能。

使用列表与文本框

为什么不创建一个包含Code, Name, Price, In stock的类,并使用List

Public MyItem
{
public string Code;
public string Name,
public float Price;
public bool inStock;
}
List<MyItem> myList = new List<MyItem>();
private void button1_Click(object sender, EventArgs e)
{
  MyItem temp = new MyItem()
  temp.Code=txtBox1.Text;
  temp.Name=(txtBox2.Text);
  temp.Price=(txtBox3.Text);
  temp.inStock=(txtBox4.Text);
  mylist.add(temp);
  txtBox1.Text = "";
  txtBox2.Text = "";
  txtBox3.Text = "";
  txtBox4.Text = "";
}

如果你以这种方式实现它,那么你就可以使用索引来遍历列表中的所有项。在上面的例子中,你可能需要转换文本框中的一些值,然后才能使用它们(price to double)

如果你想添加项目到Listview并以某种方式显示它们,然后重写MyItem类中的toString属性,你可以显示任何你想要的文本。

您不应该只在控件中存储数据。我会创建一个类来保存关于特定项目的所有信息,并用文本框的内容填充它,并将其存储在一些集合中(可能是字典,如果你想通过代码查找一个)

你可以在ListViewItem的"Tag"属性中添加对这个对象的引用,这样你就可以立即从任何选定的ListViewItem中获取它。

我不太明白你说的"我可以通过(那个标识符)将所有数据设置回文本框中吗? "哪个标识符?!"

但是我得到的数据是这样的:

var item = listview1.items.where(x=>x.SubItems[0].value == mycodeId).firstordefault();

现在我有了一个项目,我可以从中检索数据:

textbox1.Text = item[1].value;