我在form1中有一个类的对象列表。在form2中,我有一个列表框,需要从form1的列表中填充对象。这是小代码
public class Form1:Form
{
public List<RegistrationInformation> car = new List<RegistrationInformation>();
private void btnRegister_Click(object sender, EventArgs e)
{
//Create new object of class Registrationinformation which have created
//new property like a Name, Surname, Car...
RegistrationInformation c = new RegistrationInformation();
c.Name= txtName.Text;
c.Surname= txtSurname.Text;
c.Car= txtCar.Text;
car.Add(c); //Add object to list
int number = car.Count; //this give me right result every next time
}
}
public class Form2:Form
{
//I tried this
Form 1 frm = new Form1();
listBox1.Items.AddRange(frm.car);
//In this form I have some information about registered car and his owner
//The left side of form is for listBox the right side is for some controls
//like is label, text box..When I select one item from list box I want to show information about them
//So for that I tried with next code
int number = frm.car.Count; //But I find this problem - this give me result 0
//So this code don't work
if (number > 0)
{
for (int i = 0; i < number; i++)
{
string NameSurname = frm.car[i].Name + " " + rg.car[i].Surname;
listBox1.Items.Add(NameSurname);
}
}
}
我在从列表中添加项目到列表框时遇到问题。当我在表单2中调用列表时,我得到他们没有项目的结果。我点击按钮添加项目。因此,每当用户更改txtBox Name / Surname / Car并单击Button1时,他们就会使用属性方法Name,Surname,Car创建一个类的对象。然后对象放到List。在第二个按钮上,我打开表格2,我有像我在评论后描述的屏幕 - listBox1.Items.AddRange(frm.car);
你是否知道为什么第二种形式没有在列表中看到项目是什么问题?
更新:我忘了添加我创建Form1的新实例并在表单加载时使用它访问汽车列表我试图添加类form2的构造函数但没有成功。
答案 0 :(得分:1)
这是您的第一个表单中的列表:
public List<RegistrationInformation> car = new List<RegistrationInformation>();
在btnRegister_Click
中点击按钮时,您可以将项目添加到该列表中。
在Form2
中,您创建Form1
的实例并将其命名为frm
并访问car
列表。这个新表单frm
,没有人点击按钮,因此列表car
为空。因此,列表中没有任何项目。
答案 1 :(得分:0)
问题在于变量的范围。就像@CodingYoshi写的那样,你在Form1
中创建的Form2
实例从未将任何汽车添加到列表中。
我建议您创建一个新类来托管有问题的列表(可能是单例,或者由&#34; main&#34;表单实例化)。这样,您就可以在Form1
和Form2
之间共享列表。