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 EventHandler ClickNumberEvent;
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");
}
}
}