如题;也不知道问的整部正规;我是C#的初学者;
 我建立了两个窗体;Form1和Form2.在Form1中有几个控件;其Enable设置为False;
   在Form2中有一个button;我就是想同过单击Form2中的button;使Form1中几个控件
      的Enable属性值变成True;据说要把Form1加载到Form2中;谢谢各位

解决方案 »

  1.   

    最简单的办法
    把你Form1中需要设置的控件 设置成public
      

  2.   

    用事件在Form2中public delegate void BtnClickEventHandler(object sender, EventArgs e);
    public event BtnClickEventHandler OnBtnClick;然后, 在Form2中的button Click中private void button_Click(object sender, EventArgs e)
    {
    if(OnBtnClick != null)
    {
    OnBtnClick(sender, e);
    }
    }再之后就是在Form1中接这个Event啦, 在Form1的Constructor中protected Form2 frm2;
    public Form1(Form2 frm2)
    {
    this.frm2 = frm2;
    this.frm2.OnBtnClick += new EventArgs(frm2_OnBtnClick);
    }private void frm2_OnBtnClick(object sender, EventArgs e)
    {
    //Do anything you want to do
    }
      

  3.   

    在Form2 中定义一个Form1变量,设置成属性
    private Form1 frm;
    public Form1 Form1
    {
       set{this.frm = value;}
    }
    然后在Form1 实例化Form2的地方加上
    Form2 frm2 = new Form2();
    frm2.Form1 = this;
    frm2.Show();接下来只要在Form1定义一个public 的方法负责改属性就好了
    public void aaa(bool flag)
    {
        xxxx.Enable = flag;
    }
      

  4.   

    不用加载在另一个窗体内。
    一:
    两个窗体要互相操作的控件设为public,
    然后可以在每个窗体的构造函数的地方传入另一个窗体的引用,然后存到一个变量里,这样就可以使用了。
    二:
    也得设为Public 然后 把每个窗体内都声明一个static的变量 类型为自己本身,然后在构造函数的地方把this赋值给这个变量,然后别的窗体就可以调用 窗体类型名.控件名来操作了。
    这种方法适用于窗体只创建一个。
      

  5.   

    将Form2显示在Form1中
    dim Frm2 as new Form2
    Frm2.TopLevel = False
    me.Controls.Add(Frm2)
    Frm2.show实际上就是把Form2当作Form1的控件用了
      

  6.   

    假设将Form2要显示在Form1的Pannel中Form2  F2= new Form2();
    F2.TopLevel = False
    Form1.Pannel.Controls.Add(F2)
    F2.show()实际上就是把Form2当作Form1的控件用了
    =====================
      

  7.   

    Form2 form = new Form2();
    form.FormBorderStyle = FormBorderStyle.None;
    form.TopLevel = false;
    this.panel1.Controls.Add(form);
    form.Show();