比如我有两个窗体form1,form2.form1下有个控间名为menu_box,请问各位我如何在FORM2下调用这个控间,对form1进行实体化后,还是没有menu_box的引用...谢谢各位了~~~

解决方案 »

  1.   

    用代理+事件
    例子如下:本例实现子窗体关闭时,父窗体也关闭
    在子窗口中声明事件:    public event childclose closefather;    然后在它的关闭事件中触发本事件:     private void Form1_Closed(object sender, System.EventArgs e)
         {
           //用事件去关闭主窗口
            closefather();
          }在父窗口中(登陆窗口中):
        在窗口类之前,在共同的命名空间之后声明代理:     public delegate void childclose();
       
       然后弹出子窗体的地方这样写:   Form1 ff=new Form1();
        ff.closefather+=new childclose(this.closethis); //closethis()是父窗体中的一个方法
        ff.Show();   定义方法:     public void closethis()
        {
         this.Close();
         }
      

  2.   

    ....为什么看的我一头雾水...如果不关闭FORM1的情况下呢。.
      

  3.   

    form1的事件这样,
    Form2 _Form2 = new Form2(menu_box _menu_box);
     _Form2.ShowDialog();
    form2里, 
    public Form2()
            {
                InitializeComponent();
            }
     把这改成
    private menu mymenu_box
    public Form2(menu _menu)
            {
    mymenu_box=_menu;
                InitializeComponent();
            }
    然后就可以在Form2其他地方调用了
      

  4.   

    參見http://blog.csdn.net/tjvictor/archive/2006/06/23/824617.aspx
    中的第四個方法,用delegate來做。如果你對delegate不熟的話,請先看delegate的有關知識。
      

  5.   

    主要就是把form2的默认的那个函数改成带参数的原来的
    public Form2()
            {
                InitializeComponent();
            }
    改成这样
    public Form2(string id)
            {
    在这就可以把传进来的id取到公共变量或是直接显示什么的了如
    label1.text=id;
                InitializeComponent();
            }
      

  6.   

    把form1做为参数传递过去吧.
    在form2加一个带参数的构造函数:在form2窗口操作 f1 就可以.private Form1 f1 = null;public From2(Form1 form1)
    {
      ......
      this.f1 = form1;
    }调用时:Form2 f2 = new Form2(this);
    f2.Show();
      

  7.   

    应该还需要修改form1的控件的Modifiers属性,设置为public
      

  8.   

    看lz的要求,直接将控件声明为public就可以了
      

  9.   

    数据交互
    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
    窗体的参数传递
    http://blog.csdn.net/zhzuo/archive/2006/05/05/708941.aspx#sec5