У вас есть две формы: форма1 и форма2. Открывается две формы. В form2 у вас есть одно текстовое поле (txt2) и одна кнопка (btn2). В form1 у вас есть одно текстовое поле (txt1). Когда пользователь вводит что-то на txt2 и нажимает btn2, текст в txt2 будет добавлен в txt1. Это то, что вы хотите?
Если да: В form2, вы должны создать делегат:
// Declare a delegate
public delegate void GetValue(string value);
// Declare event with delegate
public event GetValue btn2_Clicked;
Затем в form2, вы создаете функцию для обработки этого события: Имя функции является то же самое с именем события вы просто объявить и добавить в него префикс «Вкл». Как это:
public void Onbtn2_Clicked(string value)
{
if (btn2_Clicked != null)
{
btn2_Clicked(value);
}
}
После этого, в btn2 событие щелчка, поднимайтесь ваше мероприятие просто создано:
private void btn2_Click(object sender, EventArgs e)
{
Onbtn2_Clicked(txt2.Text);
}
Хорошо, что делается в form2. Comeback form1 закончить: Я предполагаю, что form2 открывается, когда пользователь нажимает кнопку (btn1) в Form1, поэтому в btn1 клик событие:
private void btn1_Click(object sender, EventArgs e)
{
// Create form2
Form2 frm2 = new Form2();
// Handle btn2 click
frm2.btn2_Clicked += new Form2.GetValue(frm2_btn2_Clicked);
// Show form2
frm2.Show();
}
void frm2_btn2_Clicked(string value)
{
// When btn2 is clicked, the text in txt2 will be assign to txt1
txt1.Text = value;
}
И текст будет присвоенным txt1 в form1
Это Бесполезный Не работай. –
var frm = Application.OpenForms ["Form1"] ?? новый Form1(); frm.body.Text + = "" + текст; –
@rcarter: 'frm' будет иметь неправильный статический тип, поиск элемента' body' не удастся. –