我想弄两个form。form1上有个按钮,一按就打开form2,然后模拟按一下form2上的按钮,或是改变一个form2上text的内容。两个form之间能这么用吗??

解决方案 »

  1.   

    能说清楚点吗?????
    是在form1中 改变form2中的text里面的内容的同时显示form2?
      

  2.   

            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f = new Form2();
                f.Load += new EventHandler(f_Load);
                f.Show();
            }        void f_Load(object sender, EventArgs e)
            {
                ((Form2)sender).button1.PerformClick();
            }这是在Form1里操作,需要把form2里的button1的可见级别设为public
      

  3.   

    嗯,其实我就是想在form1里按一个按钮,把form2显示出来,这个好弄,可是怎么能调form2里的按钮呢?
    这是两个类吧,不能互相调吧?要是只把按钮放到一个类里,那从这个类又不能控制form2的text了啊?
      

  4.   

            private void button1_Click(object sender, EventArgs e)
            {
                Form2 f = new Form2();
                f.Tag = true;
                f.Show();
            }        private void Form2_Load(object sender, EventArgs e)
            {
                if ((bool)this.Tag == true)
                {
                    button1.PerformClick();
                }
            }还可以这样
      

  5.   

    void f_Load(object sender, EventArgs e) 
            { 
                ((Form2)sender).button1.PerformClick(); 
            } 
    这个是什么啊?写哪里?什么被调用啊??
      

  6.   

    那是不是每次进form2都要执行这个啊,要是我不从这个按钮里进来呢?
      

  7.   

    这是f.Load += new EventHandler(f_Load); 这句话添加的方法
    就写在form1里就可以,他的意思是让form2里的button1触发点击事件,前提是button1为public
      

  8.   

    那你可以用我第二个方法,用f.Tag那个,意思就是传一个参数进去,如果为true,就代表是通过form1的按钮进去的,就调用那个方法,如果为false或者null就不用管
      

  9.   

    不行啊,你这个new了之后就是另一个form1了吧,对象不一样了啊
      

  10.   

    恩,这个是点了Form1的button1之后就实例并且弹出一个Form2,然后触发Form2上的button1的Click事件.不是你想要的效果吗?
    比如点完Form1的button1并弹出Form2了之后,这时候再点button1,你想要新弹出来一个Fomr2还是触发已有的Fomr2的button点击事件?
      

  11.   

    把form1上的控件设置为public 的,在form2窗体上应该就可以调用的,试试看
      

  12.   

    他是要用Form1调用Form2,如果是Form2调用Form1就简单多了,不过这个也不难...
      

  13.   

    就是要调用一个已有的form2上的东西啊,行吗??
      

  14.   

    双击Form1上的按钮,出现private void button1_Click(object sender, EventArgs e) 
    再添上Form2 f = new Form2(); 
                f.Show();
     
    即如下:
    private void button1_Click(object sender, EventArgs e) 
            { 
                Form2 f = new Form2(); 
                f.Show(); 
            } 
      

  15.   

    我不要new一个新的对象,我要用已经打开的form2上的一个按钮。在帮帮忙啊
      

  16.   

            Form2 f = new Form2();//实例一个form2
            //form1中button1的点击事件
            private void button1_Click(object sender, EventArgs e)
            {
                f.Show();//把窗口show出来,如果已经存在,就忽略了
                f.BringToFront();//把窗口带到最前
                f.button1.PerformClick();//触发form2上的button事件,前提:form2中的button2为public
            }
      

  17.   

    我想问一下,如果我没有new一个form时,我们运行程序时第一个打开的第一个窗口是这么打开的Application.Run(new FormManual());
    他没有说他是什么对象啊?
    我加了改成form aaa = new FormManual();
                Application.Run(aaa);
    其它地方也看不到aaa啊?这是为什么啊??
      

  18.   

    我的aaa是定义在Program类里的。我用Program .aaa .Controls .怎么能看到窗体的控件呢?
      

  19.   

    你想在form2里操作form1的控件??
      

  20.   

    嗯是啊,行吗??就是form2其实一直是一个,不能用new新弄一个对象。form1在开始时打开了,以后再也不关了
      

  21.   

                Form1 frm1 = (Form1)this.Owner;
                ((TextBox)frm1.Controls["textBox1"]).Text = this.textBox2.Text;
      

  22.   


    foreach (Form f in Application.OpenForms)
    {
        if (f is Form2)
        {
            Form2 f2 = (f as Form2);
            
            // 下面操作这个Form
            f2.Text = "新标题";
        }
    }
      

  23.   

    你控制另一form的空间目的是什么,你讲清楚,如果form之间传值的话有很多种方法
      

  24.   

    我就是想,先打开一个form1,然后打开一个form2,按一个按钮关闭form2,这是form1就又露出来了,然后就调form1上的一个按钮。