C# Control: Windows Forms

Use the Control type in Windows Forms. Cast more derived objects to the Control type.

Control. Windows Forms is built upon an object-oriented type hierarchy. This means that items such as your TextBox and Button are derived from a base class Control. You can act upon these items using the base Control class.

Example. To start, you can create a new Windows Forms application and add several TextBox and Button controls to the enclosing Form by dragging from the Toolbox. Next, add the Form1_Load event by double-clicking on the window itself.

Foreach: This loop acts upon the base.Controls collection. You are accessing each TextBox and Button (among others) in this loop.


However: The TextBox and Button instances are being accessed through a reference to their base class.

Casts: You can use the "is" and "as" casts to determine the derived type of the Control reference.


Also: You can even mutate the properties of the Control instances by assigning their properties.

C# program that uses Control references using System; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // Loop through each Control in ControlCollection. foreach (Control control in base.Controls) { if (control is TextBox) { control.Text = "box"; } else if (control is Button) { control.Text = "push"; } } } } }

LINQ. You can use the LINQ extensions to the C# language to use the Controls collection. The OfType extension can make searching for all Control instances of a certain derived type easier.OfTypeQuery Windows Forms Controls

Summary. The Control type—and the base.Controls collection on each Form instance—lets you access all the items such as TextBox, Button and more in a unified way. This can improve the clarity of your C# code.
Dot Net Perls
© 2007-2020 Sam Allen. Every person is special and unique. Send bug reports to