Form1:一个button和一个有数据的数组
Form2:里面定义了一个空数组
Form1是主窗口
第一次按Form1的按钮,就new一个Form2出来并把Form1中的数组的第一个数传给Form2的数组
以后再次按按钮,先判断一下是否已经存在Form2,如果不存在就跳到第一步重新开始传递数组,如果存在,就陆续把Form1中相应位置的数传给Form2的数组怎么写Form1的button_click()?

解决方案 »

  1.   

    看看这个 http://blog.csdn.net/Knight94/archive/2006/08/22/1104957.aspx
      

  2.   

            private Form2 form2 = null;
            string[] strs = new string[2];
            private void button_click()
            {
                if (form2 == null || !form2.Visible)
                {
                    form2 = new Form2(strs[0]);
                    form2.Show();
                }
                else
                {
                    form2.A = str[1];
                }
            }
      

  3.   

    在Form2中加一个传递数组的属情,然后在form1中把form2设成全局变量,单击button时,把form2里面的数组属性赋成form1的数组,第二次单击的时候,看form1是否是显示的,如果是就将其属性赋值为数组的值,不是就new一个
    ..
    class Form1 : Form
    {
    Form2 frm2 = null;void button1_Click(object sender,EventArgs e)
    {
    if(frm2!=null && frm2.Visible == true)
    {
    frm2 = new Form2();
    frm2.Array = new string[]{"2","4"};
    frm2.Show();
    }
    else
      frm2.Array = new string[]{"2","4"};}}class Form2 : Form
    {public object[] Array { get;set;}}...
    楼主可以按思路去完成代码
      

  4.   

    我想的办法比较笨 好像会出很多问题。 是:在Form2里写构造方法
    List<string> lis=new List<string>();
    public Form2(string str)
    {
          lis.Add(str)
    }
    Form1里写
    Form2 frm;
    string[] str=new string[2];
    Click里写
    if(frm!=null && frm.Is)//怎么拼 忘了。
     frm=new Form2
    else
     frm=new Form2(str[0].ToString);
       
      

  5.   

    private Form2 form2 = null;
    下面判断的时候肯定就是null了么,其实怎么寻找窗体就是我一个大问题
      

  6.   

    晕,第一次点击后 以后就不为null了
      

  7.   

    意外关闭  我要的是null,然后可以new
      

  8.   

    //关闭的结果为form2.Visible 为 false
    //form2.Visible == false 就是已关闭
      

  9.   

    Form2如果被恶意关闭,我得判断后,重新new一个出来
      

  10.   

    为什么我不行呢?
     Form2 form2 = null;
              void button_click()
            {
                if (form2 == null && !form2.Visible)
                {
                     form2.Show();
                }
            }
    点击后根本new不出来Form2,去掉“&& !form2.Visible”后,每点一次出来一个
      

  11.   

    form2 == null || !form2.Visible