我将几个panel完全重叠在一起,每一panel上有一按钮,按钮使当前panel隐藏,另一panel出现。问题是经常会有panel无法显示出来,要使panel不与其他几个重叠才能显示。除了panel的visible设置为true其他的都是false,代码也是正确的。这是为什么,怎么解决?谢谢

解决方案 »

  1.   

    跟踪一下显示在最上面的panel是哪个panel,因为控件设置在最上层和最下层是不一样的而且每个panel在重新刷新后应该是visible重新设置false
      

  2.   

    Control.BringToFront 方法 将控件带到 Z 顺序的前面。 命名空间:  System.Windows.Forms
    程序集:  System.Windows.Forms(在 System.Windows.Forms.dll 中)Control.SendToBack Method 这个把控件放到z顺序最后面。用这个方法大概能解决一些问题不过最好还是拆分成几个自定义控件,动态加载吧,你层叠在一起,虽然这样做省了一些写代码的功夫到时候需要维护的话会很困难。
      

  3.   

    涉资不同位置
    遍历窗体看看控件属性是否visible为true
      

  4.   

    还是不要通过visible去设置可见了,就通过设置显示的层级来显示好一点~