Как разместить динамические элементы управления на динамических формах? - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь создать пользовательские формы с уникальными наборами элементов управления для каждой формы ... Я могу создать динамическую форму, но, похоже, я не могу поместить в нее какие-либо элементы управления ..

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

Форма создается нормально, но безуспешно на кнопках ... (Я отредактировал код, показанный здесь, чтобы было легче увидеть, что я пытаюсь сделать, но моя форма все еще разрушается, как только она создается Я понятия не имею, почему.

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Решил это со следующим:

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);
0 голосов
/ 12 июня 2019

Сначала 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);
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...