#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. Я сделал параметризованный способ, и это сработало! Спасибо