在一个Form里面有2个Panel叠在一起
两个Button
当我点击ButtonA的时候触发事件
Panel1显示,Panel2隐藏
点击ButtonB的时候
Panel1隐藏,Panel2显示
我在事件里是这样写的
 private void btnIndiInfo_Click(object sender, EventArgs e)
 {
     if (pnlIndi.Visible == false) 
     {
         pnlIndi.Visible = true;
         panel1.Visible = false;
     }
 } private void btnAnInfo_Click(object sender, EventArgs e)
 {
     if (panel1.Visible == false) 
     {
         panel1.Visible = true;
         pnlIndi.Visible = false;
     }
 }为什么我点击ButtonA的时候能够显示,而点击ButtonB的时候就什么都没有了。

解决方案 »

  1.   

    你设置的时候有没有先设置一个Panel的Visible=false啊
    比如你先设置panel1.visible =false;
    pnlIndi.visible=true;
    这样的话你点击btnAnInfo的时候才有效,相反也一样
      

  2.   

    这是我测试的
    我是先设置Panel2.Visible=false.Panel1.Visible=true;
    然后
    private void button6_Click(object sender, System.EventArgs e)
    {
    if(!this.panel2.Visible)
    {
    this.panel2.Visible=true;
    this.panel1.Visible =false;
    }
    } private void button5_Click(object sender, System.EventArgs e)
    {
    if(!this.panel1.Visible)
    {
    this.panel2.Visible=false;
    this.panel1.Visible =true;
    }
    }
      

  3.   

    我是一开始就把panel1的visible设置为false的
    但点击ButtonB的时候panel1和pnlIndi都不显示了
      

  4.   

    我想了下哦
    有没有可能是这样的情况。。
    我把Panel1和Panel2叠在一起
    VS会自动把Panel2添加到Panel1然后我点击ButtonB的时候
    Panel1的隐藏,Panel2也就跟着隐藏了
      

  5.   

    两个按钮用同一个事件处理程序btn_Clickprivate void btn_Click(object sender, EventArgs e)
     {
         Button btn = sender as Button;
         pnlIndi.Visible = (btn.Name == "ButtonA");
         panel1.Visible = (btn.Name != "ButtonA");
     }