NumberDisplay

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 NumberDisplay { public partial class Form1 : Form { int numberSubScreenLaunched = 0; NumberPad subScreen; public Form1() { InitializeComponent(); } private void btnExit_Click(object sender, EventArgs e) { for (int i = 0; i < numberSubScreenLaunched; i++) { subScreen.ClickNumberEvent -= M_ClickNumberEvent; } Application.Exit(); } private void btnLaunchNumberPad_Click(object sender, EventArgs e) { subScreen = new NumberPad(); // Subscribe to the event subScreen.ClickNumberEvent += M_ClickNumberEvent; subScreen.Show(); numberSubScreenLaunched += 1; } private void M_ClickNumberEvent(object sender, string e) { txtNumber.Text += e.ToString(); } private void Form1_Load(object sender, EventArgs e) { } } }

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 NumberDisplay { public partial class NumberPad : Form { // Declare the event public event EventHandlerClickNumberEvent; public NumberPad() { InitializeComponent(); } private void btnExit_Click(object sender, EventArgs e) { this.Close(); } // Publish the event private void lblZero_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "0"); } private void lblOne_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "1"); } private void lblTwo_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "2"); } private void lblThree_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "3"); } private void lblFour_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "4"); } private void lblFive_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "5"); } private void lblSix_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "6"); } private void lblSeven_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "7"); } private void lblEight_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "8"); } private void lblNine_Click(object sender, EventArgs e) { ClickNumberEvent?.Invoke(this, "9"); } } }