你在if(checkBox1.Checked)这一句加个断点,测试一下,是否执行到else这个条件里面了

解决方案 »

  1.   

    我早测试过了,执行到else这个条件里面了,之前我还有一句代码
    btn.Text="Change";
    同样不起作用。
      

  2.   


    放到private void checkBox1_CheckedChanged(object sender, System.EventArgs e)
    {
    }
    中处理
      

  3.   

    我把这段代码改成:
    else
    {
                                         MessageBox.Show("d");
    //为什么以下代码不起作用
    btn.Visible=false;
    }
    对话框能弹出来的。
      

  4.   

    你每Click一次生成和Add的不是同一个btn如果没有Checked,根本不Add,   btn.Visible=false;当然没有效果
      

  5.   

    我在下面的事件处理还是一样,只有对话框弹出,按钮却不能隐藏。
    private void checkBox1_CheckedChanged(object sender, System.EventArgs e)
    {
    }
      

  6.   

    下面代码是你想要的效果
    System.Windows.Forms.Button temp;
    private void button1_Click(object sender, System.EventArgs e)
    {
    System.Windows.Forms.Button btn;
    btn = new System.Windows.Forms.Button();
    btn.Size=new Size(75,26);

    btn.Location =new Point(8,208);
    btn.Name="btn";
    btn.Text="新按钮";
    if(checkBox1.Checked)
    {
    temp = btn;
    this.Controls.Add(temp);

    }
    else
    {
    //为什么以下代码不起作用
    temp.Visible=false;
    } }
      

  7.   

    HNU(嶽麓書院 為楚有材,於斯為盛!) 
    楼上的朋友,谢谢你了,问题你帮我解决了,最重要的是你给了我新思路。
      

  8.   

    因为你每次在checkBox1点击的时候都会生成一个新的Button在那里,覆盖了原先的Button!