GUI Windows Forms C# Tutorial

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
public class ListBoxSelectionMode : Form
{
  ListBox lb;
  RadioButton rdoMultiExtended;
  RadioButton rdoMultiSimple;
  RadioButton rdoMultiOne;
  TextBox txtTop;
  Button btnTop;
  public ListBoxSelectionMode()
  {
    int xSize, ySize;
    Size = new Size(300,400);
    lb = new ListBox();
    lb.Parent = this;
    lb.Location = new Point(10,10);
    lb.Size = new Size(ClientSize.Width - 20, Height - 200);
    lb.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom;
    lb.BorderStyle = BorderStyle.Fixed3D;
    lb.MultiColumn = true;
    lb.ScrollAlwaysVisible = true;
    GroupBox grpMulti = new GroupBox();
    grpMulti.Parent = this;
    grpMulti.Text = "MultiSelect";
    grpMulti.Location = new Point(lb.Left, lb.Bottom + 25);
    grpMulti.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
    rdoMultiOne = new RadioButton();
    rdoMultiOne.Parent = grpMulti;
    rdoMultiOne.Text = "One";
    rdoMultiOne.Tag = SelectionMode.One;
    rdoMultiOne.Checked = true;
    rdoMultiOne.Location = new Point(10,15);
    rdoMultiOne.CheckedChanged += new System.EventHandler(rdoMulti_CheckedChanged);
    rdoMultiSimple = new RadioButton();
    rdoMultiSimple.Parent = grpMulti;
    rdoMultiSimple.Text = "Multi-Simple";
    rdoMultiSimple.Tag = SelectionMode.MultiSimple;
    rdoMultiSimple.Location = new Point(10, rdoMultiOne.Bottom);
    rdoMultiSimple.CheckedChanged += new System.EventHandler(rdoMulti_CheckedChanged);
    rdoMultiExtended = new RadioButton();
    rdoMultiExtended.Parent = grpMulti;
    rdoMultiExtended.Text = "Multi-Extended";
    rdoMultiExtended.Tag = SelectionMode.MultiExtended;
    rdoMultiExtended.Location = new Point(10, rdoMultiSimple.Bottom);
    rdoMultiExtended.CheckedChanged += new System.EventHandler(rdoMulti_CheckedChanged);
    xSize = (int)(Font.Height * .75) * rdoMultiExtended.Text.Length;
    ySize = ((int)rdoMultiOne.Height * 3) + 20;
    grpMulti.Size = new Size(xSize, ySize);
    Panel pnlTop = new Panel();
    pnlTop.Parent = this;
    pnlTop.Location = new Point(lb.Left, grpMulti.Bottom + 10);
    pnlTop.Anchor = AnchorStyles.Left | AnchorStyles.Bottom;
    Label lblTop = new Label();
    lblTop.Parent = pnlTop;
    lblTop.Text = "TopIndex: ";
    xSize = ((int)(Font.Height * .5) * lblTop.Text.Length);
    lblTop.Size = new Size(xSize, Font.Height + 10);
    txtTop = new TextBox();
    txtTop.Parent = pnlTop;
    txtTop.Location = new Point(lblTop.Right, lblTop.Top);
    txtTop.Text = lb.TopIndex.ToString();
    txtTop.Size = new Size((int)(Font.Height * .75) * 3, 
                Font.Height + 10);
    btnTop = new Button();
    btnTop.Parent = pnlTop;
    btnTop.Text = "Update";
    btnTop.Location = new Point(txtTop.Right + 10, txtTop.Top);
    btnTop.Click += new System.EventHandler(btnTop_Click);
    lb.Items.Add("12345");
      lb.Items.Add("67890");      
      lb.Items.Add("7890");      
      lb.Items.Add("890");            
  } 
  static void Main() 
  {
    Application.Run(new ListBoxSelectionMode());
  }
  private void rdoMulti_CheckedChanged(object sender, EventArgs e)
  {
    RadioButton rdo = (RadioButton)sender;
    lb.SelectionMode = (SelectionMode)rdo.Tag;
  }
  private void btnTop_Click(object sender, EventArgs e)
  {
    txtTop.Text = lb.TopIndex.ToString();
  }
}