C# Обмен данными между формами

98
03 января 2021, 17:30

Помогите разобраться. Пишу программу на С# в которой от Form1 наследуется Form2 и Form3. В ходе работы нужно передать полученные данные из Form2 на TextBox'ы Form3. Не могу понять как это реализовать. Передача должна выполняться в обработчике события

Примерно так это должно выглядеть:

Все еще не понимаю как правильно сделать.

В главной форме создаю 2 наследующих формы по клику, в одной передаю ссылку на другую

        private void Form1_Click(object sender, EventArgs e)
    {
        Eventer EventerForm = new Eventer();
        EventerForm.Show();
        Main MainForm = new Main(EventerForm);
        MainForm.Show();
    }

В конструкторе второй формы принимаю ссылку на третью

        public Main(L5f.Eventer EventerForm)
    {
        InitializeComponent();
        ex1 = EventerForm.textBox1.Text;
        ey1 = EventerForm.textBox2.Text;
        ex2 = EventerForm.textBox3.Text;
        ey2 = EventerForm.textBox4.Text;
    }
static string ex1, ey1, ex2, ey2 = "yahho";

но очевидно это должно работать не так. Нужно в поля EventerForm передать информацию из MainForm

Answer 1

делаеш метод расширения

public static class ShareForms
    {
        public  static TForm GetForm<TForm>(this Form f) where  TForm: Form, new()
        {
            var formT = Application
                .OpenForms
                .OfType<TForm>()
                .FirstOrDefault();
            return formT;
        }
    }

и потом вызываем

var value = this.GetForm<Form10>().Form10ValueString;

Если есть нескольок класов с одним именем

var value = this.GetForm<NameSpacePath.Form10>().Form10ValueString;
READ ALSO
Ошибка компиляции &#39;List&lt;Customer&gt;&#39; does not contain a definition for &#39;Orders&#39;

Ошибка компиляции 'List<Customer>' does not contain a definition for 'Orders'

Выдаёт такую ошибку, что делать

105
Для чего нужны делегаты в C#?

Для чего нужны делегаты в C#?

Разбираюсь в c# в частности с делегатами, возник вопрос зачем нужны делегаты если можно создать экземпляр класса и вызвать метод

129