2

实际上我有 3 种形式,和一个类,我在其中定义了列表的 class(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(); 
}
4

3 回答 3

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(); 

然后在应用程序内的任何地方访问持有者值。

于 2013-06-17T06:34:19.440 回答
0

实现这一目标的方法有很多,最明显的方法是:

表单 2 上的公共方法,您在初始化表单 2 后从开启者表单调用它

或者,为表单 2 创建另一个接受列表作为输入的构造函数,并在初始化表单 2 时使用此构造函数

于 2013-06-17T06:27:41.670 回答
0

有什么简单的方法:

 ECAS_WINDOW_FORM F_Ecas= new ECAS_WINDOW_FORM(this);
 F_Ecas.setYourList(list);
 F_Ecas.Show(); 
于 2013-06-17T06:12:52.293 回答