我有这个自定义类的列表。
public class Item
{
public string @Url;
public string Name;
public double Price;
public Item(string @url, string name, double price)
{
this.Url = url;
this.Name = name;
this.Price = price;
}
public void setPrice(Button button)
{
this.Price = Convert.ToDouble(button.Text);
}
}
现在在我的主要winform中声明了
List<Item> items = new List<Item>();
这些字段是通过添加按钮设置的,如下所示,它们从 3 个文本框中获取信息并将其存储在一个新项目中。
Regex url = new Regex(@"^[a-zA-Z0-9\-\.]+\.(com|org|net|ca|mil|edu|COM|ORG|NET|CA|MIL|EDU)$");
Regex name = new Regex(@"^[0-9, a-z, A-Z, \-]+$");
Regex price = new Regex(@"^[0-9, \.]+$");
if (url.IsMatch(urlText.Text) && name.IsMatch(nameText.Text) && price.IsMatch(priceText.Text))
{
itemListBox.Items.Add(nameText.Text);
double item_Price = Convert.ToDouble(priceText.Text);
items.Add(new Item(@itemURL.Text, itemName.Text, item_Price));
nameText.Clear();
priceText.Clear();
urlText.Clear();
}
else
{
match(url, urlText, urlLabel);
match(price, priceText, priceLabel);
match(name, nameText, nameLabel);
}
正如您在上面的代码中看到的,它还将项目的名称添加到项目列表框中。现在我有另一个窗口窗体,当单击编辑按钮时会弹出。如何使编辑表单中的项目列表框显示与主窗口表单中的项目列表框完全相同?
在一个基本问题中,我如何将项目列表传输到编辑表单。我已经尝试通过构造函数传递它,因为我希望编辑的信息保持不变,无论 winform 是什么。构造函数在编辑表单中声明:
public Edit(List<Item> i)
{
itemList = i;
InitializeComponent();
}
当我加载列表框
foreach (Item i in itemList)
{
itemListBox.Items.Add(i.Name);
}
列表框显示名称而不是名称的实际值
更新 1:
更新 2:
我的主要winform代码http://pastebin.com/mENGKdnJ
编辑winform代码http://pastebin.com/tvp95jQW
不要注意打开的文件对话框我不知道如何编写它到目前为止,这个程序的编码教会了我很多,因为我边走边学。