我现在做一个小系统:
   登陆界面进去就是一个主界面(frm_main),主界面右上角有几个按钮:型号录入,客户信息,单位信息......
   点击"型号录入"出来一个界面:型号录入(frm_xhlu);点击"客户信息"出来一个界面:客户信息(frm_khxx).....
   在 型号录入 界面上有一个panel ,panel上面有新增,修改按钮,"新增,修改"按钮控制界面的新增,修改;客户信息 界面上也有一个panel ,panel上面也有新增,修改按钮.....
    现在提出的是:我想把各个模块(型号录入,客户信息)的panel 放到主界面上去.
说明白点就是改变各个模块panel 的位置,当然位置是任意的,包括超出本身模块.
   谢谢各位了。分都给出了很多,但是一直没有得到解决.

解决方案 »

  1.   

    点型号录入的时候 让客户信息,单位信息 的PANEL.Visible = false 
    "新增,修改"按钮控制界面的新增 是什么意思???
      

  2.   

    刚才少打了按钮俩字  搂住 是想 把各个子窗体的 plan上的按钮  都放到主窗体上? 要用委托实现点击主窗体按钮 实现 子窗体中定义的方法?
      

  3.   

    1  wxgwxgwxg() 说的对的.但是我不动怎么样实现.
    2  xiaobaosky0109() "新增,修改"按钮控制界面的新增 是什么意思???
       就是在型号录入界面的新增控制型号录入新增记录功能.修改控制型号录入修改记录功能;在单位信息界面的新增控制新增记录功能.修改控制修改记录功能
      

  4.   

    在主窗体里定义几个和panel里按钮的功能对应的委托
    这个委托在主窗体调用子窗体时或各子窗体获得焦点时 加载(给委托赋值)不同子窗体的方法 然后再那些panel的那些按钮里执行这个委托的方法。 
    //在命名空间里:
    public  delegate void Panelbut();  //这里假设你的方法都是没有参数的
    //主窗体里定义:
    Panelbut addnew;
    Panelbut update;
    ...............//在调用子窗体时给委托赋值
    frm_xhlu thechildfrm=new frm_xhlu();
    frm.Activated += new EventHandler(frm_Activated);   //子窗体活动窗体时
    frm.Deactivate += new EventHandler(frm_Deactivate); //子窗体为非活动窗体时
    void frm_Activated(object sender, EventArgs e)
    {
        addnew= new addnew(thechildfrm.ExeAddNew) //ExeAddNew子窗体里实现新增的public方法
        update=new ...............................
        ................................
    }
    void frm_Deactivate(object sender, EventArgs e)
    {
         addnew=null;
         ...........
    }
    //在点击主窗体AddNew按钮的时候执行
    if(addnew==null) return;
    addnew();我的思路大概是这样的 自己没试过 需要的话你就试试看吧
      

  5.   

    好的,,谢谢,但有些地方不是很明白\//在命名空间里:
    public  delegate void Panelbut();  //这里假设你的方法都是没有参数的
    //主窗体里定义:
    Panelbut addnew;
    Panelbut update;不是很明白:
    1 //在命名空间里: public  delegate void Panelbut();  //这里假设你的方法都是没有参数
    2 //主窗体里定义:
    Panelbut addnew;
    Panelbut update; 
      

  6.   

    public  delegate void Panelbut(); 声明一个没有参数的委托阿委托
    Panelbut addnew; 声明一个委托实例
      

  7.   

    因为我要更新数据的窗体是打开的了。.能不能找到打开的窗体,然后用下面的语句//在调用子窗体时给委托赋值
    frm_xhlu thechildfrm=new frm_xhlu();
    frm.Activated += new EventHandler(frm_Activated);   //子窗体活动窗体时
    frm.Deactivate += new EventHandler(frm_Deactivate); //子窗体为非活动窗体时我不想用  frm_xhlu thechildfrm=new frm_xhlu();
    因为我想打开的窗体是可以找到的,这样就没有必要再 new 一个实例了,你说呢...