我正在做一个小程序。
一个主窗体内,上面是菜单和工具条,左边是tree,右边的大部分地方是具体内容。右边有很多控件,集中放在panel里面,这样就有很多panel.我想根据菜单或工具条选项动态的改变右边的内容,就是动态的加载panel。但是这样主窗体就必须写很多控件,好像很乱。
请问一定要这样写吗?或者我的思路不正确,请大家指教。
谢谢

解决方案 »

  1.   

    你遇到的情况和我的一样。
    我的处理方法是定义了一个UserControl,作为一个整体来处理。
      

  2.   

    我觉得最简单的办事就是把panel隐藏,你要实现什么功能的时候就让某个panel显示其他的都隐藏,方法比较笨因为人笨~~~~~
      

  3.   

    实际上当你写主窗体的时候,“不应该假设右边的控件的类型”,这样你就自由了!也就是说右边的控件是根据说明自动创建的。例如数据库中对菜单的每一个节点,都说明了应该用哪个assembly中的哪个type的组件来现实,当用户点击菜单节点的时候,程序从数据库中读取类型说明实例化出现实控件,这个控件此时就会读取数据库或者系统环境信息(包括登录用户的信息)来现实自己的数据内容。一言以蔽之,就是“利用反射从数据库中了解并动态装载控件”。
      

  4.   

    你的设计,写主窗口的前提条件是对所有可能用到的控件都预先装入,或者至少都了解并且写成switch判断来装入,太死板了。
      

  5.   

    to:sp1234
       感谢你的回复。你所说得好象正是我所需要的。我没有什么开发经验,所以不懂。您能否说的具体一点。点击选项时读取数据库,控件的配置信息放在数据库里吗?包括大小,颜色等。控件放在组件里吗?
    ================================================================
    此帖通过csdn小助手回复。
        CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,她能够在
    脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
    快,产生的流量更小。    下载地址:http://qqwwee.com/csdn.rar
    ================================================================