我窗體上只有一個按鈕(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");
}
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");
}
newbtn.Size = new Size(400, 300);
newbtn.Location = new Point(button1.Left, button1.Height + 1000); 你创建的button可能跑到Form外了.
加一句: this.AutoScroll = true; 试试.
{
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");
}