如何在动态窗体上放置动态控件



我正在尝试在每个表单上使用唯一控件集制作自定义表单...... 我可以创建动态表单,但我似乎无法对其进行任何控制。

using (Form formA = new Form())
{
  Button btn = new Button();
  formA.Text = "Form A";
  formA.Name = "FormA";
  this.MaximizeBox = false;
  this.MinimizeBox = false;
  this.BackColor = Color.White;
  this.ForeColor = Color.Black;
  this.Size = new System.Drawing.Size(155, 265);
  this.Text = "Run-time Controls";
  this.FormBorderStyle = FormBorderStyle.FixedDialog;
  this.StartPosition = FormStartPosition.CenterScreen;
  formA.Show();
  formA.Controls.Add(btn);
}

表单创建正常,但按钮上没有运气...... (我编辑了此处显示的代码,以便更容易看到我正在尝试执行的操作,但是我的表单在创建后仍然会自行销毁。 我不知道为什么。

用如下方法解决了:

Button btn = new Button();
Form formA = new Form();
formA.Text = "Form A";
formA.Name = "FormA";
this.MaximizeBox = false;
this.MinimizeBox = false;
this.BackColor = Color.White;
this.ForeColor = Color.Black;
this.Size = new System.Drawing.Size(155, 265);
this.Text = "Run-time Controls";
this.FormBorderStyle = FormBorderStyle.FixedDialog;
this.StartPosition = FormStartPosition.CenterScreen;
formA.Show();
formA.Controls.Add(btn);

首先,formA.ShowDialog();将冻结在那里,直到表单关闭。其次,您只创建了一个按钮并移动了它。

更改如下:

using (Form formA = new Form()) 
{
   formA.Text = "Form A";
   formA.Name = "FormA";
   this.MaximizeBox = false;
   this.MinimizeBox = false;
   this.BackColor = Color.White;
   this.ForeColor = Color.Black;
   this.Size = new System.Drawing.Size(155, 265);
   this.Text = "Run-time Controls";
   this.FormBorderStyle = FormBorderStyle.FixedDialog;
   this.StartPosition = FormStartPosition.CenterScreen;
   formA.Show();
   for (int x = 0; x <= 3; x++)
   {
      Button btn = new Button();
      btn.Location = new System.Drawing.Point(10 + (x * 5), 10 + (x * 5));
      btn.Text = "Button" + x.ToString();
      btn.Name = "Button_" + x.ToString(); 
      formA.Controls.Add(btn);
   }
}

最新更新