#c# #winforms
Вопрос:
Моя форма 2 открывается формой 1, вот так:
Form2 fm2 = new Form2();
fm2.Show();
Итак, теперь моя форма 2 может изменить текст в текстовом поле текущей формы 1?
Я попытался использовать следующее:
Form1 fm1 = new Form1();
fm1.textBox_A.Text = "123";
Но это не работает.
Комментарии:
1. Добро пожаловать в SO! Вы создаете новый экземпляр Form1, но вам необходимо передать существующий экземпляр в frm2.
Ответ №1:
О, я просто нашел способ делать то, что хочу.
для формы 2:
Form1 fm1;
public Form2(Form1 _Form1)
{
fm1 = _Form1;
InitializeComponent();
...
}
Затем форма1:
private void Form1_Load(object sender, EventArgs e)
{
Form2 fm2 = new Form2(this);
fm2.Show();
}
public string ChangeText
{
get { return this.textBox_A.Text; }
set
{
this.textBox_A.Text = value;
}
}
Итак, теперь я могу использовать следующее в форме 2, чтобы изменить текст в текущей форме 1 на форму 2:
fm1.ChangeText= "YAAAAAAAAAAAAAAAA";
Ответ №2:
на первом шаге вы должны добавить новый конструктор в Form2
System.Windows.Forms.Form fm1;
public Form2(System.Windows.Forms.Form frm1)
{
this.fm1 = frm1;
InitializeComponent();
}
тогда просто напиши это
fm1.textBox_A.Text = "123";