其实我有3个表单,还有一个类,类(ReadXMLToEcasWindow),我在其中定义了列表
public List<string> ack_line_path = new List<string>();
从button_click 上的表单1,将弹出 form2 , 在form2中我正在函数
下向List添加值private void add_path_after_successful_load()
{
int rowcount = Ecas_config_gridview.Rows.Count;
for (int i = 0; i < rowcount; i++)
{
XML_To_Ecas.ack_line_path.Add(Ecas_config_gridview.Rows[i].Cells[3].Value.ToString());
}
this.Hide();
}
//once the values got added form2 will be hidden, again **clicking on form1 button** , form3 under which i want to use these list values
private void btn_ECAS_Click(object sender, EventArgs e)
{
ECAS_WINDOW_FORM F_Ecas= new ECAS_WINDOW_FORM(this);
F_Ecas.Show();
}
答案 0 :(得分:2)
有多个选项可以将值发送到Windows应用程序中的另一个表单。
1)设置属性:
ECAS_WINDOW_FORM F_Ecas= new ECAS_WINDOW_FORM(this);
F_Ecas.ack_line_path = this.ack_line_path;
F_Ecas.Show();
2)通过先前回答的方法发送:
ECAS_WINDOW_FORM F_Ecas= new ECAS_WINDOW_FORM(this);
F_Ecas.setYourList(list);
F_Ecas.Show();
3)构建一个保存值的静态类。您可以在应用程序的任何位置访问静态类的值:
static class Holder
{
public static List<string> ack_line_path = new List<string>();
}
设置持有人值
ECAS_WINDOW_FORM F_Ecas= new ECAS_WINDOW_FORM(this);
Holder.ack_line_path = this.ack_line_path;
F_Ecas.Show();
然后在应用程序内的任何位置访问持有者值。
答案 1 :(得分:0)
一个简单的方法:
ECAS_WINDOW_FORM F_Ecas= new ECAS_WINDOW_FORM(this);
F_Ecas.setYourList(list);
F_Ecas.Show();
答案 2 :(得分:0)
实现这一目标的方法很多,最明显的方法是:
表单2上的公共方法,在初始化表单2之后从开启窗体中调用它
或者,为表单2创建另一个接受列表作为输入的构造函数,并在初始化表单2时使用此构造函数