using System;
using System.Drawing;
using System.Windows.Forms;
public class BaseForm : System.Windows.Forms.Form
{
private Button btnClose;
private Button btnApp;
protected Label lbl;
public BaseForm()
{
btnClose = new Button();
btnClose.Location = new Point(25,100);
btnClose.Size = new Size(100,25);
btnClose.Text = "&Close";
btnClose.Click += new System.EventHandler(btnClose_Click);
btnApp = new Button();
btnApp.Location = new Point(200,100);
btnApp.Size = new Size(150,25);
btnApp.Text = "&Base Application";
btnApp.Click += new System.EventHandler(btnApp_Click);
lbl = new Label();
lbl.Location = new Point(25,25);
lbl.Size = new Size(100,25);
lbl.Text = "This label on BaseForm";
Controls.AddRange(new Control[]{lbl, btnClose, btnApp});
}
static void Main()
{
Application.Run(new BaseForm());
}
private void btnClose_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnApp_Click(object sender, EventArgs e)
{
MessageBox.Show("This is the Base application.");
SomeMethod();
}
protected virtual void SomeMethod()
{
MessageBox.Show("This is SomeMethod called from BaseForm.");
}
}
public class InheritedForm : BaseForm
{
private Button btn;
public InheritedForm()
{
btn = new Button();
btn.Location = new Point(25,150);
btn.Size = new Size(125,25);
btn.Text = "C&lose on Inherited";
btn.Click += new System.EventHandler(btn_Click);
Controls.Add(btn);
lbl.Text = "Now from InheritedForm";
BackColor = Color.LightBlue;
}
static void Main()
{
Application.Run(new InheritedForm());
}
private void btn_Click(object sender, EventArgs e)
{
Application.Exit();
}
protected override void SomeMethod()
{
MessageBox.Show("This is the overridden SomeMethod called " +
"from InheritedForm.");
}
}