Nurali Mahmadov Ответов: 2

Как добавить текст из form2 в форму


Hi
 I have a question on c # 
How to add text from form2 to form1 
If you write text in form2 in textbox1, select the number 1 from combobox and click OK, then the text was on form1 in textbox1 
If you write text in form2 in textbox1, select the number 2 from combobox and click OK, then the text was on form1 in textbox2 
If you write text in form2 in textbox1, select the number 3 from combobox and click OK, then the text was on form1 in textbox3
... 
thanks


Что я уже пробовал:

I wanted to make Form2 public and then write code to Form1 through it, but nothing happened

2 Ответов

Рейтинг:
2

OriginalGriff

Как именно, зависит от "отношения" между этими двумя формами.
Взгляните на них, один из них будет соответствовать вашим обстоятельствам.
Форма, которая создает экземпляр другого:

MyForm mf = new MyForm();
mf.Show();
Это "родитель", другая форма - "Ребенок".
(Это не подразумевает никаких формальных отношений MDI)

Передача информации между двумя формами, Часть 1: Родитель-Ребенок[^]
Передача информации между двумя формами, Часть 2: Ребенок-Родитель[^]
Передача информации между двумя формами, Часть 3: Ребенок ребенку[^]


Рейтинг:
10

phil.o

Вы можете создать открытый метод в Form1, отвечающий за запись указанного текста в указанное текстовое поле:

public void WriteTo(int textBoxNb, string text)
{
   switch (textBoxNb)
   {
      case 1:
         textbox1.Text = text;
         break;
      case 2:
         textbox2.Text = text;
         break;
      case 3:
         textbox3.Text = text;
         break;
      default:
         break;
   }
}
Затем из формы 2:
private void theButton_Click(object sender, EventArgs e)
{
   if (theCombo.SelectedIndex > -1 && !string.IsNullOrEmpty(textbox1.Text))
   {
      form1Instance.WriteTo((int)theCombo.SelectedItem, textbox1.Text);
   }
}

// Form1's instance variable
private Form1 form1Instance;

// Form2's constructors
public Form2()
{
   InitializeComponent();
}

public Form2(Form1 instance) : this()
{
   form1Instance = instance;
}
Для этого необходимо, чтобы вы поддерживали ссылку на экземпляр Form1 внутри Form2 (the form1Instance переменная).

Кроме того, хорошей привычкой было бы не использовать имена по умолчанию для ваших элементов управления, а скорее давать им значимые имена, отражающие значение значения, которое они должны отображать.


Nurali Mahmadov

ты можешь сделать для меня видео?

phil.o

- Нет, извини. Но если вы объясните то, что вам непонятно, то, возможно, я или кто-то другой может попытаться помочь вам дальше.

Nurali Mahmadov

Для этого необходимо, чтобы вы поддерживали ссылку на экземпляр Form1 внутри Form2 (переменная form1Instance ( как это сделать ?)

phil.o

Например, вы можете передать экземпляр Form1 в конструктор Form2. Я обновлю свое решение, чтобы объяснить способ.