因此,我在Form1中有一个空列表和一个listBox,我希望用户在此添加“汽车”对象。为了选择他要添加的汽车,我创建了另一个表格Form2。
因此Form1列表如下:
List<Car> listCars= new List<Car>();
而且我还在Form1中创建了一个函数,因此Form2可以传递给将添加Car对象的Form1:
public void addCar(Car c)
{
listCars.Add(c);
listBox.DataSource = listCars;
listBox.DisplayMember = "carName";
listBox.ValueMember = "idCar";
listBox.Refresh();
}
Form2有一个按钮,用于激活Form1 addCar函数,并将选定的Car对象传递给它:
private void btnAdd_Click (object sender, EventArgs e)
{
form1.addCar(selectedCar);
this.Close();
}
因此,当我尝试将汽车添加到Form1列表框中时,会发生什么,它仅添加我选择的第一个汽车,如果我尝试继续添加新汽车,则列表框将仅显示我添加的第一个汽车。 / p>
答案 0 :(得分:0)
看起来您的Form1重新初始化了listCars。尝试调试addCar方法,看看它是否为空。
答案 1 :(得分:0)
这必须工作!!
使用以下代码:
public void addCar(Car c)
{
listCars.Add(c);
listBox.DataSource = null; //Make Datasource null otherwise you have to use IObservable collection
listBox.DataSource = listCars;
listBox.DisplayMember = "carName";
listBox.ValueMember = "idCar";
listBox.Refresh(); // Not necessary !
}
listBox.DataSource = null;