我在窗体左边放了一个导航控件,点击导航菜单在右边显示不同的窗体?应该怎么实现啊,

解决方案 »

  1.   

    类似IDE的Option Page吗?
    简单的做法是左边导航,右边放一个Container,点击导航时动态替换Container中显示的内容。
      

  2.   

    我的是右边一个Panel,但是我点击一个菜单后加载了一个Usercontrol1放在panel里面,继续点击另一个菜单时在加载另一个UserControl2,这是在panel里显示这个Usercontrol2,在UserControl2里面添加信息后,返回Usercontrol1界面,刚添加的信息不显示,只能重新登录后,才能显示添加的数据,因为我是在Usercontrol1的load事件里查询数据库,它不是一个Form窗体,所以不能及时显示我添加的信息。该怎么办啊?
      

  3.   

    也就是说我点击了每个菜单后,每个超链接的Usercontrol的Load事件都只是发生了一次,继续点击就不是Load事件了,系统把这些资源放在了缓存区,下次点击从缓存中调出来,并不是Load事件,所以我在其他的Usercontrol中添加了信息,不重新登录的话,别的页面引用信息像Combox用到的信息不会改变了
      

  4.   

    FlowLayoutPanel控件
    Winform 折叠式导航菜单 
      

  5.   

    UserControl2创建的时候,增加一个userControl1的回调函数。
    UserControl2返回的时候,调用回调函数就行了。
    也叫 委托函数的。
      

  6.   

    那usercontrol2中填完后怎么回到usercontrol1?是通过点击一个usercontrol2上按钮(如完成)?还是直接点与usercontrol1对应菜单项?
    不管怎么样,你可以将usercontrol1的load事件里读取数据库的功能放到一个单独的方法里(比如reload或refreshData什么的),然后当再回到usercontrol1是时候重新调用一下就行了。
      

  7.   

    不行,放在方法里,加载时调用这个方法,和我写在Load事件里面一样,不刷新数据,我的用一个Form左边为导航菜单,右边为Panel,点击菜单加载UserControl放在panel里面,
      

  8.   

    数据放到一个dataset,然后每次执行完,调用dataset的acceptXX的一个方法,他就会更新dataset,同时会更新你用dataset绑定的控件
      

  9.   


    没道理呀,放在load里就行而在其他地方就不行?你怎么做的?假设加载数据的方法为loadData,在load事件里调用一下,当将usercontrol放到Panel里再调用一下不行吗?是不是数据已回载只是界面没刷新?
      

  10.   

    Usercontrol好像和Form窗体不一样,Form是每次加载就调用一次Load事件,而Usercontrol只调用了一次Load事件,当我点击不同的菜单时所有要显示的Usercontrol都在panel里面显示,都只调了一次Load事件,显示其他的Usercontrol时,系统把刚才的Usercontrol缓存起来了,所有下次返回的时候直接从缓存里调出,不重新加载Load事件
      

  11.   

    我是说让你把load事件里负责加载数据的部分从里面拿出来,放到一个单独的方法里,然后再在必要的时候调用这个方法!问题挺简单怎么说不明白呢?另外我看见上面好像有更好的方法了!
      

  12.   

    用第三方控件 比较简单吧 dotnetbar