当点击按钮(在formA中)时,我想将另一个成员添加到List(在MainForm中)。
我有一个名为" Trips"其中包含两个用于存储的字符串成员。
我在MainForm中创建了一个List:
List<Trips> alltrip = new List<Trips>() { new Trips("Trip 1", "March"),
new Trips("Trip 2", "May")};
我将List传递给FormA然后我认为我可以在按钮点击事件中使用 alltrip 。但是它返回了一个错误,说它无法找到 alltrip ,所以我尝试将它传递给按钮,如下所示。
Trips newTrip = new Trips();
private void AddTripConfirm_Click(object sender, EventArgs e, List<Trips> alltrip)
{ //I add the List here
newTrip.Name = AddTripNametxt.Text;
newTrip.Time = AddTripTimetxt.Text;
alltrip.Add(newTrip);
}
到目前为止,它看起来对我很好,但是在Designer.cs的这一行中发生了另一个错误:
this.AddTripConfirm.Click += new System.EventHandler(this.AddTripConfirm_Click);
它说&#34; AddTripConfirm_click&#39;匹配委托&#39; System.EventHandler。&#39;&#34;由于我对C#很陌生,我想不出任何解决方案,并努力从类似问题中找到令人满意的答案。
请帮忙。 非常感谢。
答案 0 :(得分:1)
你说你把名单传递给了FormA
。我假设你是通过构造函数完成的。
只需将此列表存储在FormA
:
public partial class FormA : Form
{
private List<Trips> _allTrips; // a member variable
public FormA(List<Trips> allTrips)
{
// store allTrips in _allTrips
_allTrips = allTrips;
InitializeComponents();
}
现在您可以通过事件处理程序中的成员变量访问列表:
private void AddTripConfirm_Click(object sender, EventArgs e)
{
Trips newTrip = new Trips();
newTrip.Name = AddTripNametxt.Text;
newTrip.Time = AddTripTimetxt.Text;
_allTrips.Add(newTrip); // use the member _allTrips
}
由于您存储了对列表的引用,因此您的主表单中也可以使用添加的行程。
答案 1 :(得分:0)
假设您在构造函数中将alltrip
传递给FromA
,您需要添加一个类变量来访问它,即:
private List<Trips> _alltrip;
public FormA(List<Trips> alltrip)
{
_alltrip = alltrip;
}
然后,当您需要使用变量时,只需使用_alltrip
。