из родительской формы в дочернюю через перегрузку Show()/ShowDialog()

В дочерней форме переопределяем метод Show()/ShowDialog(), который будет принимать аргумент, присваивающий значение текстовому полю.
В родительской форме, при создании объекта дочерней формы, в метод Show()/ShowDialog() передадим текстовое поле, значение которого будет присвоено текстовому полю дочерней формы.
Передать данные можно только один раз, в момент создания дочерней формы.
Скрыть

Показать

Копировать
  Counter.cs  
  • using System;
  • using System.Collections.Generic;
  • using System.Linq;
  • using System.Text;
  • using System.Threading.Tasks;
  •  
  • namespace _0023 {
  •  class Counter {
  •   ushort showStart;
  •   ushort showEnd;
  •   decimal price;
  •   public Counter(string arg0, string arg1, string arg2) {
  •    ushort.TryParse(arg0, out showStart);
  •    ushort.TryParse(arg1, out showEnd);
  •    decimal.TryParse(arg2, out price);
  •   }
  •   public ushort ResultShow() {
  •    return (ushort)(showEnd - showStart);
  •   }
  •   public decimal Sum() {
  •    return Math.Round((decimal)(ResultShow() * price) , 2);
  •   }
  •  }
  • }
Скрыть

Показать

Копировать
  Form2Child.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 _0023 {
  •  public partial class Form2Child : Form {
  •   public Form2Child() {
  •    InitializeComponent();
  •   }
  •   //перегрузка метода Show()/ShowDialog(), через него присваиваем значение полю
  •   public DialogResult ShowDialog(string arg) {
  •    textBox3.Text = arg;
  •    return ShowDialog();
  •   }
  •   private void button1_Click(object sender, EventArgs e) {
  •    //вычисляем сумму
  •    Counter C = new Counter(textBox1.Text, textBox2.Text, textBox3.Text);
  •    textBox4.Text = C.Sum().ToString();
  •   }
  •   private void button2_Click(object sender, EventArgs e) {
  •    //кнопка Очистить очищает все текстовые поля
  •    foreach(Control i in Controls) {
  •     if(i.GetType() == typeof(TextBox)) {
  •      i.Text = string.Empty;
  •     }
  •    }
  •   }
  •  }
  • }
Скрыть

Показать

Копировать
  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 _0023 {
  •  public partial class Form1 : Form {
  •   public Form1() {
  •    InitializeComponent();
  •   }
  •   private void button1_Click(object sender, EventArgs e) {
  •    //вызываем дочернюю форму
  •    //в конструкторе передаем значение текстового поля
  •    new Form2Child().ShowDialog(textBox1.Text);
  •   }
  •   private void button2_Click(object sender, EventArgs e) {
  •    //кнопка Очистить очищает все текстовые поля
  •    textBox1.Clear();
  •   }
  •  }
  • }