Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在动态窗体上放置动态控件?_C#_Dynamic Controls_Dynamic Forms - Fatal编程技术网

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

C# 如何在动态窗体上放置动态控件?,c#,dynamic-controls,dynamic-forms,C#,Dynamic Controls,Dynamic Forms,我正在尝试在每个窗体上创建具有唯一控件集的自定义窗体。。。我可以创建动态表单,但似乎无法对其进行任何控制 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.Whit

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

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);
}

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

首先
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);
   }
}
使用(formA=new Form())
{
formA.Text=“表格A”;
formA.Name=“formA”;
this.ebox=false;
this.ebox=false;
this.BackColor=Color.White;
this.ForeColor=Color.Black;
该尺寸=新系统图纸尺寸(155265);
this.Text=“运行时控件”;
this.FormBorderStyle=FormBorderStyle.FixedDialog;
this.StartPosition=FormStartPosition.CenterScreen;
形式显示();

对于(int x=0;x用以下公式求解:

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()更改为formA.Show(),现在我看到表单立即被破坏,但我不知道为什么会发生这种情况…顺便说一句,我想感谢所有花时间指出我在这方面有多糟糕的人…感谢您的支持。您正在使用using()函数处理表单。using()中占用了任何资源Include将在其完成所附声明后立即处理。我现在有了它。感谢您的帮助,工程师Syed Rowshan Ali。永远不要使用您不了解其工作原理的代码。如果您不知道
使用
做什么,请查阅,该文档是在线免费的。