Из дочерней формы в родительскую
Для передачи данных из дочерней формы в родительскую, мы создадим, я бы назвал так, промежуточное свойство на главной форме. Потом передаем ссылку в дочернюю форму. Там записываем значение в это промежуточное свойство. При активации родительской формы, значение из промежуточного свойства будет записано в переменную элемента управления, которое должно отображать это значение на родительской форме.
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;
}
}
}
}
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;
}
}
}