我窗體上只有一個按鈕(button1),要想在單擊時創建另外一個按鈕,並執行新按鈕的事件,下面代碼怎麼不行呢?即沒有出現新創建的按鈕,也沒有執行它的事件!請問錯在哪里?
        private void button1_Click(object sender, EventArgs e)
        {
            Button newbtn = new Button();
            newbtn.Text = "Click Me";
            newbtn.Size = new Size(400, 300);
            newbtn.Location = new Point(button1.Left, button1.Height + 1000);
            newbtn.Visible = true;
            button1.Visible = false;
            this.Controls.Add(newbtn);
            newbtn.Click += new EventHandler(newbtn_click);
        }        private void newbtn_click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello,World");
        }

解决方案 »

  1.   

    检查:
     newbtn.Size = new Size(400, 300); 
     newbtn.Location = new Point(button1.Left, button1.Height + 1000); 你创建的button可能跑到Form外了.
    加一句:  this.AutoScroll = true; 试试.
      

  2.   

     private void button1_Click(object sender, EventArgs e) 
            { 
                Button newbtn = new Button(); 
                newbtn.Text = "Click Me"; 
                newbtn.Size = new Size(400, 300);  // 太大了,会铺满整个窗体,分辨不出来是button还是窗体。改成标准的75, 23
                
                newbtn.Location = new Point(button1.Location.X + button1.Width + 10, button1.Location.Y);// +1000,早都超出了屏幕所见的范围,所以你看不到,
                newbtn.Visible = true; 
                button1.Visible = false; 
                this.Controls.Add(newbtn); 
                newbtn.Click += new EventHandler(newbtn_click); 
            }         private void newbtn_click(object sender, EventArgs e) 
            { 
                MessageBox.Show("Hello,World"); 
            }