Как закодировать кнопку для ввода значения в текстовое поле другой формы

#c# #button #newforms

#c# #кнопка #новые формы

Вопрос:

У меня есть форма 1 с 4 кнопками, когда я нажимаю кнопку, она открывает новую форму. Каждая кнопка открывает одну и ту же форму, но я хочу, чтобы соответствующая кнопка вводила определенные значения в два разных текстовых поля в форме 2.

Кнопка формы 1 A; Form2 textbox1= 400 textbox2 =0.4

Форма 1 Кнопка B; Форма 2 textbox1= 350 textbox2 =0.9

Кнопка формы 1 C; Form2 textbox1= 700 textbox2 =0.6

Форма 1 Кнопка D; Форма 2 textbox1= USER DEFINED textbox2 = USER DEFINED

Как бы я поступил по этому поводу

  //This is the current text
 // Form1:   
private void ButtonA_Click(object sender, EventArgs e)
    {
           Form2 numb = new form2();
           numb.FormClosed  = new FormClosedEventHandler(numb_FormClosed);
           this.Hide();
           CalcForm.Show();
    }
  

Комментарии:

1. Вы могли бы создать параметризованный конструктор для второй формы, чтобы предоставить ей значения.

Ответ №1:

Вы можете просто установить значение требуемого текстового поля из первой формы, как показано ниже, но перед этим убедитесь, что вы установили, что это текстовое поле является внутренним, чтобы вы могли получить к нему доступ из первой формы (в Form.Designer.cs):

 internal System.Windows.Forms.TextBox textBox1;
  

и

 private void ButtonA_Click(object sender, EventArgs e)
{
       Form2 numb = new form2();
       numb.FormClosed  = new FormClosedEventHandler(numb_FormClosed);
       numb.textbox1.Text = "400";
       numb.textbox2.Text = "0.4";
       this.Hide();
       CalcForm.Show();
}
  

Другой подход заключается в определении параметризованного конструктора для Form2 и установке значения текстового поля в этом конструкторе, как показано ниже:

 public Form2(string a,string b)
{
    textBox1.Text = a;
    textBox2.Text = b;
}
  

и

 private void ButtonA_Click(object sender, EventArgs e)
{
       Form2 numb = new form2("aaaa","bbbb");
       numb.FormClosed  = new FormClosedEventHandler(numb_FormClosed);
       this.Hide();
       CalcForm.Show();
}
  

Комментарии:

1. Я сделал параметризованный способ, и это сработало! Спасибо