不同Panel之间切换问题

开始用的是Show()跟Hide()方法,在Panel较多的情况下会发生某些Panel不能显示问题。

 

        private void tvOption_AfterSelect(object sender, TreeViewEventArgs e)

        {

 

            this.UnVisibleAllPanels();  //这里,初始化每个panel的visible属性为false

 

            //this.lblTitle.Text = "カテゴリー";

            switch (e.Node.Name)

            {

                case OptionItem.Main:

                case OptionItem.General:

                    this.panel_General.Visible = true;

                    break;

                case OptionItem.Module:

                    this.panel_Module.Visible = true;

                    break;

                case OptionItem.Desk:

                    this.panel_TestLog.Visible = true;

                    break;

                case OptionItem.LevelOne:

                    this.panel_DefaultArg_LevelOne.Visible = true;

                    break;

                case OptionItem.LevelTwo:

                    this.panel_DefaultArg_LevelTwo.Visible = true;

                    break;

                case OptionItem.SerialCom:

                    this.panel_Serial.Visible = true;

                    break;

                default:

                    break;

            }

        }

 

 

 

CSDN上某人回复的方案,经过尝试,只能显示第一个Panel了,估计是Panel之间关系不平行的问题。

 

在Panel属性中未看见Parent属性,在Form的Load函数中加入将所有Panel的Parent设置为this之后解决。

 

最后采用如上代码类似的方案,用show跟hide应该也是可行的,归根结底是Panel之间关系不平行的问题,控件属性中没有,必须用代码设置。(补充一下:写这篇日志的时候还不知道,可以在Design的设计代码里改,在AddControl的时候确定的Parent关系,当然我当初用在OnLoad中设置Parent关系也是可行的,在Design部分能解决的就留在Design吧)

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值