GUI Windows Forms C# Tutorial

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
class Form1 : Form {
    public Form1() {
        InitializeComponent();
        this.buttonOK.Enabled = false;
        this.textBoxAddress.Tag = false;
        this.textBoxAge.Tag = false;
        this.textBoxName.Tag = false;
        this.textBoxName.Validating += new System.ComponentModel.CancelEventHandler(this.textBoxEmpty_Validating);
        this.textBoxAddress.Validating += new
               System.ComponentModel.CancelEventHandler(this.textBoxEmpty_Validating);
        this.textBoxAge.Validating += new
               System.ComponentModel.CancelEventHandler(this.textBoxEmpty_Validating);
        this.textBoxName.TextChanged += new System.EventHandler(this.textBox_TextChanged);
        this.textBoxAddress.TextChanged += new
                                        System.EventHandler(this.textBox_TextChanged);
        this.textBoxAge.TextChanged += new System.EventHandler(this.textBox_TextChanged);
    }
    private void buttonOK_Click(object sender, EventArgs e) {
        this.textBoxOutput.Text = "clicked";
    }
    private void buttonHelp_Click(object sender, EventArgs e) {
        this.textBoxOutput.Text = "text";
    }
    private void textBoxEmpty_Validating(object sender,
                                    System.ComponentModel.CancelEventArgs e) {
        TextBox tb = (TextBox)sender;
        if (tb.Text.Length == 0) {
            tb.BackColor = Color.Red;
            tb.Tag = false;
        } else {
            tb.BackColor = System.Drawing.SystemColors.Window;
            tb.Tag = true;
        }
        ValidateOK();
    }
    private void textBoxAge_KeyPress(object sender, KeyPressEventArgs e) {
        if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8)
            e.Handled = true; // Remove the character
    }
    private void textBox_TextChanged(object sender, System.EventArgs e) {
        TextBox tb = (TextBox)sender;
        if (tb.Text.Length == 0) {
            tb.Tag = false;
            tb.BackColor = Color.Red;
        } else {
            tb.Tag = true;
            tb.BackColor = SystemColors.Window;
        }
        ValidateOK();
    }
    private void ValidateOK() {
        this.buttonOK.Enabled = ((bool)(this.textBoxAddress.Tag) &&
                                (bool)(this.textBoxAge.Tag) &&
                                (bool)(this.textBoxName.Tag));
    }
    private void InitializeComponent() {
        this.labelName = new System.Windows.Forms.Label();
        this.labelAddress = new System.Windows.Forms.Label();
        this.textBoxName = new System.Windows.Forms.TextBox();
        this.textBoxAddress = new System.Windows.Forms.TextBox();
        this.labelOutput = new System.Windows.Forms.Label();
        this.buttonOK = new System.Windows.Forms.Button();
        this.buttonHelp = new System.Windows.Forms.Button();
        this.labelAge = new System.Windows.Forms.Label();
        this.textBoxAge = new System.Windows.Forms.TextBox();
        this.groupBox1 = new System.Windows.Forms.GroupBox();
        this.radioButtonMale = new System.Windows.Forms.RadioButton();
        this.radioButtonFemale = new System.Windows.Forms.RadioButton();
        this.checkBoxProgrammer = new System.Windows.Forms.CheckBox();
        this.textBoxOutput = new System.Windows.Forms.TextBox();
        this.groupBox1.SuspendLayout();
        this.SuspendLayout();
        this.labelName.AutoSize = true;
        this.labelName.Location = new System.Drawing.Point(13, 16);
        this.labelName.Name = "labelName";
        this.labelName.Size = new System.Drawing.Size(34, 14);
        this.labelName.TabIndex = 0;
        this.labelName.Text = "Name";
        this.labelAddress.AutoSize = true;
        this.labelAddress.Location = new System.Drawing.Point(13, 43);
        this.labelAddress.Name = "labelAddress";
        this.labelAddress.Size = new System.Drawing.Size(46, 14);
        this.labelAddress.TabIndex = 1;
        this.labelAddress.Text = "Address";
        this.textBoxName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.textBoxName.Location = new System.Drawing.Point(106, 13);
        this.textBoxName.Name = "textBoxName";
        this.textBoxName.Size = new System.Drawing.Size(225, 20);
        this.textBoxName.TabIndex = 2;
        this.textBoxAddress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.textBoxAddress.AutoSize = false;
        this.textBoxAddress.Location = new System.Drawing.Point(106, 40);
        this.textBoxAddress.Multiline = true;
        this.textBoxAddress.Name = "textBoxAddress";
        this.textBoxAddress.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
        this.textBoxAddress.Size = new System.Drawing.Size(225, 80);
        this.textBoxAddress.TabIndex = 3;
        this.labelOutput.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.labelOutput.AutoSize = true;
        this.labelOutput.Location = new System.Drawing.Point(13, 233);
        this.labelOutput.Name = "labelOutput";
        this.labelOutput.Size = new System.Drawing.Size(38, 14);
        this.labelOutput.TabIndex = 6;
        this.labelOutput.Text = "Output";
        this.buttonOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
        this.buttonOK.Location = new System.Drawing.Point(338, 13);
        this.buttonOK.Name = "buttonOK";
        this.buttonOK.TabIndex = 8;
        this.buttonOK.Text = "OK";
        this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);
        this.buttonHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
        this.buttonHelp.CausesValidation = false;
        this.buttonHelp.Location = new System.Drawing.Point(338, 43);
        this.buttonHelp.Name = "buttonHelp";
        this.buttonHelp.TabIndex = 9;
        this.buttonHelp.Text = "Help";
        this.buttonHelp.Click += new System.EventHandler(this.buttonHelp_Click);
        this.labelAge.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.labelAge.AutoSize = true;
        this.labelAge.Location = new System.Drawing.Point(13, 212);
        this.labelAge.Name = "labelAge";
        this.labelAge.Size = new System.Drawing.Size(24, 14);
        this.labelAge.TabIndex = 10;
        this.labelAge.Text = "Age";
        this.textBoxAge.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.textBoxAge.Location = new System.Drawing.Point(106, 209);
        this.textBoxAge.MaxLength = 3;
        this.textBoxAge.Name = "textBoxAge";
        this.textBoxAge.TabIndex = 11;
        this.textBoxAge.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBoxAge_KeyPress);
        this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.groupBox1.Controls.Add(this.radioButtonMale);
        this.groupBox1.Controls.Add(this.radioButtonFemale);
        this.groupBox1.Location = new System.Drawing.Point(13, 152);
        this.groupBox1.Name = "groupBox1";
        this.groupBox1.Size = new System.Drawing.Size(318, 50);
        this.groupBox1.TabIndex = 12;
        this.groupBox1.TabStop = false;
        this.groupBox1.Text = "Sex";
        this.radioButtonMale.AutoSize = true;
        this.radioButtonMale.Location = new System.Drawing.Point(182, 20);
        this.radioButtonMale.Name = "radioButtonMale";
        this.radioButtonMale.Size = new System.Drawing.Size(44, 17);
        this.radioButtonMale.TabIndex = 1;
        this.radioButtonMale.Text = "Male";
        this.radioButtonFemale.AutoSize = true;
        this.radioButtonFemale.Checked = true;
        this.radioButtonFemale.Location = new System.Drawing.Point(44, 20);
        this.radioButtonFemale.Name = "radioButtonFemale";
        this.radioButtonFemale.Size = new System.Drawing.Size(55, 17);
        this.radioButtonFemale.TabIndex = 0;
        this.radioButtonFemale.Text = "Female";
        this.checkBoxProgrammer.AutoSize = true;
        this.checkBoxProgrammer.Checked = true;
        this.checkBoxProgrammer.CheckState = System.Windows.Forms.CheckState.Checked;
        this.checkBoxProgrammer.Location = new System.Drawing.Point(13, 128);
        this.checkBoxProgrammer.Name = "checkBoxProgrammer";
        this.checkBoxProgrammer.Size = new System.Drawing.Size(78, 17);
        this.checkBoxProgrammer.TabIndex = 13;
        this.checkBoxProgrammer.Text = "Programmer";
        this.textBoxOutput.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                    | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.textBoxOutput.AutoSize = false;
        this.textBoxOutput.Location = new System.Drawing.Point(13, 254);
        this.textBoxOutput.Multiline = true;
        this.textBoxOutput.Name = "textBoxOutput";
        this.textBoxOutput.ReadOnly = true;
        this.textBoxOutput.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
        this.textBoxOutput.Size = new System.Drawing.Size(318, 116);
        this.textBoxOutput.TabIndex = 14;
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(422, 382);
        this.Controls.Add(this.textBoxOutput);
        this.Controls.Add(this.checkBoxProgrammer);
        this.Controls.Add(this.groupBox1);
        this.Controls.Add(this.textBoxAge);
        this.Controls.Add(this.labelAge);
        this.Controls.Add(this.buttonHelp);
        this.Controls.Add(this.buttonOK);
        this.Controls.Add(this.labelOutput);
        this.Controls.Add(this.textBoxAddress);
        this.Controls.Add(this.textBoxName);
        this.Controls.Add(this.labelAddress);
        this.Controls.Add(this.labelName);
        this.MinimumSize = new System.Drawing.Size(430, 328);
        this.groupBox1.ResumeLayout(false);
        this.groupBox1.PerformLayout();
        this.ResumeLayout(false);
        this.PerformLayout();
    }
    private System.Windows.Forms.Label labelName;
    private System.Windows.Forms.Label labelAddress;
    private System.Windows.Forms.TextBox textBoxName;
    private System.Windows.Forms.TextBox textBoxAddress;
    private System.Windows.Forms.Label labelOutput;
    private System.Windows.Forms.Button buttonOK;
    private System.Windows.Forms.Button buttonHelp;
    private System.Windows.Forms.Label labelAge;
    private System.Windows.Forms.TextBox textBoxAge;
    private System.Windows.Forms.GroupBox groupBox1;
    private System.Windows.Forms.RadioButton radioButtonFemale;
    private System.Windows.Forms.RadioButton radioButtonMale;
    private System.Windows.Forms.CheckBox checkBoxProgrammer;
    private System.Windows.Forms.TextBox textBoxOutput;
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}