C# как создать объект в 1-й форме из 2-й формы - PullRequest
0 голосов
/ 14 апреля 2020

Хочу сказать, что я не программист, но сейчас работаю над своим проектом. Мне не ясно, как создать объект (Атрибут: панель с надписью и текстовым полем внутри) в 1-й форме (Основная форма) из 2-й формы.

  1. 1-я форма имеет панель, в которой Атрибут должен быть создан.
  2. 1-я форма также имеет кнопку , которая открывает 2-ую форму.
  3. 2-я форма принимает роли создания и настройки Атрибут
  4. 2-я форма имеет Кнопка - «Создать». При нажатии он должен создать атрибут в 1-й форме и вставить его в Панель атрибутов .

Не могли бы вы дать мне несколько примеров, как можно было бы выполнить такое действие?

Main Form 2nd Form

1 Ответ

0 голосов
/ 14 апреля 2020

Почему бы не позволить Form1 создать элемент управления для самого ?

   public partial class Form1 : Form {

     public void CreateMyControl() {
       Panel attrPanel = new Panel() {
         Parent = this,
         Size = new Size(100, 60),   //TODO: Put the right value here
         Location = new Point(0, 0), //TODO: Put the right value here 
       };  

       new Label() {
         Parent   = attrPanel,         
         Text     = "I'm the Label", //TODO: Put the right value here
         Location = new Point(4, 4)  //TODO: Put the right value here
       };

       new TextBox() {
         Parent   = attrPanel, 
         Text     = "I'm the TextBox", //TODO: Put the right value here
         Location = new Point(4, 34)   //TODO: Put the right value here
       }    
    }

    private void btnRun_Click(object sender, EventArgs e) {
      // We create Form2 instance and pass current Form1 instance to it    
      Form2 form2 = new Form2(this);

      form2.ShowDialog(); // Or Show
    }

Сделав Form1, давайте передадим Form1 через конструктор

public partial class Form2 : Form {
  ...

  public Form1 ParentForm {get;} = null;

  public Form2() {
    InitializeComponent();
  }

  public Form2(Form1 parentForm) : this() {
    ParentForm = parentForm;
  }

  private void btnCreateControl_Click(object sender, EventArgs e) {
    // If we have parent form, create some controls on it
    if (ParentForm != null)
      ParentForm.CreateMyControl(); 
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...