如何将列表从Form1传输到Form2?
我在Form2 showme = new Form2(Freezers);
上收到错误。
Form1中:
private void button1_Click(object sender, EventArgs e)
{
List<macivari> Freezers = new List<macivari>();
Freezers.Add(new macivari
{
Names="Toshiba",
Id=1,
about=new macivariabout
{
Doors="2",
Celsius=-30
}
});
Freezers.Add(new macivari
{
Names = "Samsung",
Id = 2,
about = new macivariabout
{
Doors="1",
Celsius=-60
}
});
foreach (var item in Freezers)
{
if (listBox1.SelectedItem == "მაცივარი")
{
checkedListBox1.Items.Add(item.Names);
}
else
{
checkedListBox1.Items.Clear();
}
}
Form2 showme = new Form2(Freezers);
showme.ShowDialog ();
}
窗体2:
public partial class Form2 : Form
{
public List<string> Freezers=new List<string>();
public Form2(List<string> a)
{
InitializeComponent();
Freezers = a;
foreach (var item2 in Freezers)
{
}
}
}
答案 0 :(得分:1)
您传递的类型是:
List<macivari>
构造函数期望的类型是:
List<string>
这些不是同一类型。
如果Form2
需要List<macivari>
,那么它应该是一个:
public List<macivari> Freezers=new List<macivari>();
public Form2(List<macivari> a)
{
InitializeComponent();
Freezers = a;
foreach (var item2 in Freezers)
{
}
}
另一方面,如果确实需要List<string>
,那么你应该提供一个macivari
。 string
应如何表示为Names
?例如,它的Form2 showme = new Form2(Freezers.Select(f => f.Names).ToList());
属性?像这样的东西?:
{{1}}