из дочерней формы в родительскую, простой пример

Для передачи данных из дочерней формы в родительскую, мы создадим, я бы назвал так, промежуточное свойство на главной форме. Потом передаем ссылку в дочернюю форму. Там записываем значение в это промежуточное свойство. При активации родительской формы, значение из промежуточного свойства будет записано в переменную элемента управления, которое должно отображать это значение на родительской форме.
Скрыть

Показать

Копировать
  FormChild.cs  
  • using System;
  • using System.Collections.Generic;
  • using System.ComponentModel;
  • using System.Data;
  • using System.Drawing;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • using System.Windows.Forms;
  •  
  • namespace _0019 {
  •  public partial class FormChild : Form {
  •   public FormChild() {
  •    InitializeComponent();
  •   }
  •   private void button1_Click(object sender, EventArgs e) {
  •    DialogResult dialog = MessageBox.Show(
  •     "Вы уверены?",
  •     "",
  •     MessageBoxButtons.YesNo,
  •     MessageBoxIcon.Question
  •    );
  •    if(dialog == DialogResult.Yes) {
  •     //выводим результат в дочерней форме
  •     label2.Text = textBox1.Text;
  •  
  •     /*создаем переменную родительской формы (Form1)и присваиваем
  •     ей значение через ссылку на родительскую форму*/
  •     Form1 F1 = (Form1)this.Owner;
  •  
  •     //присваиваем значение свойству в родительской форме
  •     //F1.Between = textBox1.Text;
  •     F1.Label2.Text = textBox1.Text;
  •    }
  •   }
  •  }
  • }
Скрыть

Показать

Копировать
  Form1.cs  
  • using System;
  • using System.Collections.Generic;
  • using System.ComponentModel;
  • using System.Data;
  • using System.Drawing;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  • using System.Windows.Forms;
  •  
  • namespace _0019 {
  •  public partial class Form1 : Form {
  •   //ВНИМАНИЕ!!!
  •   //если мы создадим промежуточное свойство с модификатором public
  •   //типа string, которому будут присваиваться значения из дочерней
  •   //формы, то значение на родительской форме появится только тогда,
  •   //когда она станет активной
  •   public string Between {set; get;}
  •  
  •   //а вот если создать свойство с модификатором public с типом
  •   //элемента, которому будут передаваться значения из дочерней формы,
  •   //то значение на родительской форме появится даже тогда,
  •   //когда форма будет не активна!!!
  •    public Label Label2 {
  •    set {
  •     label2 = value;
  •    }
  •    get {
  •     return label2;
  •    }
  •   }
  •   public Form1() {
  •    InitializeComponent();
  •   }
  •   private void button1_Click(object sender, EventArgs e) {
  •    //открываем дочернюю форму и передаем ей ссылку
  •    new FormChild().Show(this);
  •   }
  •   private void Form1_Activated(object sender, EventArgs e) {
  •    //label2.Text = Between;
  •    label2.Text = Label2.Text;
  •   }
  •  
  •   private void button2_Click(object sender, EventArgs e) {
  •    label2.Text = string.Empty;
  •   }
  •  }
  • }