Csharp/C Sharp/GUI Windows Form/ListBox

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Add new item to ListBox (text from TextBox)

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
      private System.Windows.Forms.ListBox displayListBox;
      private System.Windows.Forms.TextBox inputTextBox;
      private System.Windows.Forms.Button addButton;
      private System.Windows.Forms.Button removeButton;
      private System.Windows.Forms.Button clearButton;
      
      public Form1() {
        InitializeComponent();
    }
      private void addButton_Click( object sender, EventArgs e )
      {
        displayListBox.Items.Add( inputTextBox.Text );
        inputTextBox.Clear();
      } 
      private void removeButton_Click( object sender, EventArgs e )
      {
        if ( displayListBox.SelectedIndex != -1 )
          displayListBox.Items.RemoveAt( displayListBox.SelectedIndex );
      }
      private void clearButton_Click( object sender, EventArgs e )
      {
         displayListBox.Items.Clear();
      }
      private void InitializeComponent()
      {
         this.displayListBox = new System.Windows.Forms.ListBox();
         this.inputTextBox = new System.Windows.Forms.TextBox();
         this.addButton = new System.Windows.Forms.Button();
         this.removeButton = new System.Windows.Forms.Button();
         this.clearButton = new System.Windows.Forms.Button();
         this.SuspendLayout();
         // 
         // displayListBox
         // 
         this.displayListBox.FormattingEnabled = true;
         this.displayListBox.Location = new System.Drawing.Point(13, 12);
         this.displayListBox.Name = "displayListBox";
         this.displayListBox.Size = new System.Drawing.Size(119, 238);
         this.displayListBox.TabIndex = 0;
         // 
         // inputTextBox
         // 
         this.inputTextBox.Location = new System.Drawing.Point(149, 12);
         this.inputTextBox.Name = "inputTextBox";
         this.inputTextBox.Size = new System.Drawing.Size(100, 20);
         this.inputTextBox.TabIndex = 1;
         // 
         // addButton
         // 
         this.addButton.Location = new System.Drawing.Point(149, 56);
         this.addButton.Name = "addButton";
         this.addButton.Size = new System.Drawing.Size(100, 36);
         this.addButton.TabIndex = 2;
         this.addButton.Text = "Add";
         this.addButton.Click += new System.EventHandler(this.addButton_Click);
         // 
         // removeButton
         // 
         this.removeButton.Location = new System.Drawing.Point(149, 109);
         this.removeButton.Name = "removeButton";
         this.removeButton.Size = new System.Drawing.Size(100, 36);
         this.removeButton.TabIndex = 3;
         this.removeButton.Text = "Remove";
         this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
         // 
         // clearButton
         // 
         this.clearButton.Location = new System.Drawing.Point(149, 165);
         this.clearButton.Name = "clearButton";
         this.clearButton.Size = new System.Drawing.Size(100, 36);
         this.clearButton.TabIndex = 4;
         this.clearButton.Text = "Clear";
         this.clearButton.Click += new System.EventHandler(this.clearButton_Click);
         // ListBoxTestForm
         // 
         this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
         this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
         this.ClientSize = new System.Drawing.Size(263, 268);
         this.Controls.Add(this.clearButton);
         this.Controls.Add(this.removeButton);
         this.Controls.Add(this.addButton);
         this.Controls.Add(this.inputTextBox);
         this.Controls.Add(this.displayListBox);
         this.Name = "ListBoxTestForm";
         this.Text = "ListBoxTest";
         this.ResumeLayout(false);
         this.PerformLayout();
      }
      [STAThread]
      static void Main()
      {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
    }
}


Add Object to ListBox

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
  private System.Windows.Forms.ListBox lstCustomers;
  public Form1() {
        InitializeComponent();
    lstCustomers.Items.Add(new Customer("A", "B", DateTime.Now.AddDays(-10)));
    lstCustomers.Items.Add(new Customer("C", "D", DateTime.Now.AddDays(-100)));
    lstCustomers.Items.Add(new Customer("F", "G", DateTime.Now.AddDays(-500)));
  }
  private void lstCustomers_SelectedIndexChanged(object sender, EventArgs e)
  {
    Customer cust = (Customer)lstCustomers.SelectedItem;
    MessageBox.Show("Birth Date: " + cust.BirthDate.ToShortDateString());
  }
  private void InitializeComponent()
  {
    this.lstCustomers = new System.Windows.Forms.ListBox();
    this.SuspendLayout();
    // 
    // lstCustomers
    // 
    this.lstCustomers.FormattingEnabled = true;
    this.lstCustomers.Location = new System.Drawing.Point(12, 12);
    this.lstCustomers.Name = "lstCustomers";
    this.lstCustomers.Size = new System.Drawing.Size(120, 95);
    this.lstCustomers.TabIndex = 0;
    this.lstCustomers.SelectedIndexChanged += new System.EventHandler(this.lstCustomers_SelectedIndexChanged);
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(308, 230);
    this.Controls.Add(this.lstCustomers);
    this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    this.Name = "Form1";
    this.Text = "Form1";
    this.ResumeLayout(false);
  }

  [STAThread]
  static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
  }
}
public class Customer
{
  public string FirstName;
  public string LastName;
  public DateTime BirthDate;
  public Customer() { }
  public Customer(string firstName, string lastName, DateTime birthDate)
  {
    FirstName = firstName;
    LastName = lastName;
    BirthDate = birthDate;
  }
  public override string ToString()
  {
    return FirstName + " " + LastName;
  }
}


CheckedListBox Demo 2

using System;
using System.Windows.Forms;
using System.Drawing;
using System.ruponentModel;
 
public class CheckedListBoxDemo:Form{
  CheckedListBox FavLangs;
  GroupBox grpControls;
  Button AddValue;
  Button EditValue;
  Button DeleteValue;
  Button ShowValues;
  TextBox OldValue;
  TextBox NewValue;
  Label OldCaption;
  Label NewCaption;
  CheckBox chkAll;
 
  public CheckedListBoxDemo(){
    grpControls=new GroupBox();
    grpControls.Text="CheckedListBox Demo";
 
    AddValue=new Button();
    AddValue.Text="&Add";
    AddValue.Click+=new EventHandler(Add_Click);
    
    EditValue=new Button();
    EditValue.Text="&Edit";
    EditValue.Click+=new EventHandler(Edit_Click);
    
    DeleteValue=new Button();
    DeleteValue.Text="&Delete";
    DeleteValue.Click+=new EventHandler(Delete_Click);
    
    ShowValues=new Button();
    ShowValues.Text="&Show";
    //ShowValues.Click+=new EventHandler(ShowValues_Click);
    ShowValues.Click+=new EventHandler(Checked_Changed);
    
    OldValue=new TextBox();
    OldValue.ReadOnly=true;
    NewValue=new TextBox();
 
    OldCaption=new Label();
    OldCaption.Text="Old Value:";
    NewCaption=new Label();
    NewCaption.Text="New Value:";
    chkAll=new CheckBox();
    chkAll.Text="Check/UnCheck All";
    chkAll.CheckedChanged+= new EventHandler(Checked_Changed);
    chkAll.Width=175;
 
    OldCaption.Location=new Point(15,15);
    PositionControl(OldCaption,OldValue,true);
    PositionControl(OldCaption,NewCaption,false);
    PositionControl(OldValue,NewValue,false);
    PositionControl(NewCaption,AddValue,false);
    PositionControl(AddValue,EditValue,true);
    PositionControl(EditValue,DeleteValue,true);
    PositionControl(DeleteValue,ShowValues,true);
    PositionControl(AddValue,chkAll,false);
 
    grpControls.Controls.AddRange(new Control[]{OldCaption,OldValue,NewCaption,NewValue,AddValue,EditValue,DeleteValue,ShowValues,chkAll});
    grpControls.Size=new Size(450,200);
 
    FavLangs=new CheckedListBox();
    FavLangs.Location=new Point(10,10);
    FavLangs.SelectedIndexChanged+=new EventHandler(SelectedIndex_Changed);
 
    grpControls.Location=new Point(FavLangs.Left+FavLangs.Width+20,FavLangs.Top);
    this.Controls.AddRange(new Control[]{FavLangs,grpControls});
  }
 
  private void PositionControl(Control source,Control destination,bool CanPlaceHorizontal)
  {
    if(CanPlaceHorizontal){
      destination.Location=new Point(source.Left+source.Width+20,source.Top);
    }else{
      destination.Location=new Point(source.Left,source.Top+source.Height+20);      
    }
  }
 
  private void Add_Click(object sender,EventArgs e){
    ((Button)sender).Text = "aaa";
    
    if(NewValue.Text.Trim()!=""){
      FavLangs.Items.Add(NewValue.Text);
    }else{
      MessageBox.Show("Enter a Value to Add");
    }
  }
 
  private void SelectedIndex_Changed(object sender,EventArgs e){
    OldValue.Text=FavLangs.Items[FavLangs.SelectedIndex].ToString();
  }
 
  private void Edit_Click(object sender,EventArgs e){
    if(FavLangs.SelectedIndex==-1){
      MessageBox.Show("Select a Item to Edit");
    } else{
     if(NewValue.Text.Trim()!=""){
        FavLangs.Items[FavLangs.SelectedIndex]=NewValue.Text;
     }
      else
      {
        MessageBox.Show("Enter a Value to Edit");
      }            
    }
  }
 
  private void Delete_Click(object sender,EventArgs e)
  {
    if(FavLangs.SelectedIndex!=-1)
    {
      FavLangs.Items.RemoveAt(FavLangs.SelectedIndex);
    }
    else
    {
      MessageBox.Show("Select a Item to Delete");
    }
  }
 
  private void ShowValues_Click(object sender,EventArgs e){
    string SelectedValues="The following value(s) are Selected:\n" + new String("-",48) + "\n";
    for(int i=0;i<FavLangs.CheckedItems.Count;i++){
      SelectedValues+=FavLangs.CheckedItems[i].ToString() + "\n";
    }
    MessageBox.Show(SelectedValues);
  }
 
  private void Checked_Changed(object sender,EventArgs e){
      for(int i=0;i<FavLangs.Items.Count;i++){
          FavLangs.SetItemChecked(i,chkAll.Checked);
      }    
  }
 
  public static void Main(){
      Application.Run(new CheckedListBoxDemo());
  }
}


Clear all items in a ListBox

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
      private System.Windows.Forms.ListBox displayListBox;
      private System.Windows.Forms.TextBox inputTextBox;
      private System.Windows.Forms.Button addButton;
      private System.Windows.Forms.Button removeButton;
      private System.Windows.Forms.Button clearButton;
      
      public Form1() {
        InitializeComponent();
    }
      private void addButton_Click( object sender, EventArgs e )
      {
        displayListBox.Items.Add( inputTextBox.Text );
        inputTextBox.Clear();
      } 
      private void removeButton_Click( object sender, EventArgs e )
      {
        if ( displayListBox.SelectedIndex != -1 )
          displayListBox.Items.RemoveAt( displayListBox.SelectedIndex );
      }
      private void clearButton_Click( object sender, EventArgs e )
      {
         displayListBox.Items.Clear();
      }
      private void InitializeComponent()
      {
         this.displayListBox = new System.Windows.Forms.ListBox();
         this.inputTextBox = new System.Windows.Forms.TextBox();
         this.addButton = new System.Windows.Forms.Button();
         this.removeButton = new System.Windows.Forms.Button();
         this.clearButton = new System.Windows.Forms.Button();
         this.SuspendLayout();
         // 
         // displayListBox
         // 
         this.displayListBox.FormattingEnabled = true;
         this.displayListBox.Location = new System.Drawing.Point(13, 12);
         this.displayListBox.Name = "displayListBox";
         this.displayListBox.Size = new System.Drawing.Size(119, 238);
         this.displayListBox.TabIndex = 0;
         // 
         // inputTextBox
         // 
         this.inputTextBox.Location = new System.Drawing.Point(149, 12);
         this.inputTextBox.Name = "inputTextBox";
         this.inputTextBox.Size = new System.Drawing.Size(100, 20);
         this.inputTextBox.TabIndex = 1;
         // 
         // addButton
         // 
         this.addButton.Location = new System.Drawing.Point(149, 56);
         this.addButton.Name = "addButton";
         this.addButton.Size = new System.Drawing.Size(100, 36);
         this.addButton.TabIndex = 2;
         this.addButton.Text = "Add";
         this.addButton.Click += new System.EventHandler(this.addButton_Click);
         // 
         // removeButton
         // 
         this.removeButton.Location = new System.Drawing.Point(149, 109);
         this.removeButton.Name = "removeButton";
         this.removeButton.Size = new System.Drawing.Size(100, 36);
         this.removeButton.TabIndex = 3;
         this.removeButton.Text = "Remove";
         this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
         // 
         // clearButton
         // 
         this.clearButton.Location = new System.Drawing.Point(149, 165);
         this.clearButton.Name = "clearButton";
         this.clearButton.Size = new System.Drawing.Size(100, 36);
         this.clearButton.TabIndex = 4;
         this.clearButton.Text = "Clear";
         this.clearButton.Click += new System.EventHandler(this.clearButton_Click);
         // ListBoxTestForm
         // 
         this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
         this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
         this.ClientSize = new System.Drawing.Size(263, 268);
         this.Controls.Add(this.clearButton);
         this.Controls.Add(this.removeButton);
         this.Controls.Add(this.addButton);
         this.Controls.Add(this.inputTextBox);
         this.Controls.Add(this.displayListBox);
         this.Name = "ListBoxTestForm";
         this.Text = "ListBoxTest";
         this.ResumeLayout(false);
         this.PerformLayout();
      }
      [STAThread]
      static void Main()
      {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
    }
}


Fill XML data to ListBox

 
using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.Xml;
class Form1 : Form {
    public Form1() {
        InitializeComponent();
    }
    private void buttonLoopThroughDocument_Click(object sender, EventArgs e) {
        listBoxXmlNodes.Items.Clear();
        XmlDocument document = new XmlDocument();
        document.Load("Books.xml");
        RecurseXmlDocument((XmlNode)document.DocumentElement, 0);
    }
    private void RecurseXmlDocument(XmlNode root, int indent) {
        if (root == null)
            return;
        if (root is XmlElement){
            listBoxXmlNodes.Items.Add(root.Name.PadLeft(root.Name.Length + indent));
            if (root.HasChildNodes)
                RecurseXmlDocument(root.FirstChild, indent + 2);
            if (root.NextSibling != null)
                RecurseXmlDocument(root.NextSibling, indent);
        } else if (root is XmlText) {
            string text = ((XmlText)root).Value;
            listBoxXmlNodes.Items.Add(text.PadLeft(text.Length + indent));
        } else if (root is XmlComment) {
            string text = root.Value;
            listBoxXmlNodes.Items.Add(text.PadLeft(text.Length + indent));
            if (root.HasChildNodes)
                RecurseXmlDocument(root.FirstChild, indent + 2);
            if (root.NextSibling != null)
                RecurseXmlDocument(root.NextSibling, indent);
        }
    }
    private void buttonCreateNode_Click(object sender, EventArgs e) {
        XmlDocument document = new XmlDocument();
        document.Load("Books.xml");
        XmlElement root = document.DocumentElement;
        XmlElement newBook = document.CreateElement("book");
        XmlElement newTitle = document.CreateElement("title");
        XmlElement newAuthor = document.CreateElement("author");
        XmlElement newCode = document.CreateElement("code");
        XmlText title = document.CreateTextNode("C#");
        XmlText author = document.CreateTextNode("AAA");
        XmlText code = document.CreateTextNode("1234567890");
        XmlComment comment = document.CreateComment("comment");
        newBook.AppendChild(comment);
        newBook.AppendChild(newTitle);
        newBook.AppendChild(newAuthor);
        newBook.AppendChild(newCode);
        newTitle.AppendChild(title);
        newAuthor.AppendChild(author);
        newCode.AppendChild(code);
        root.InsertAfter(newBook, root.FirstChild);
        document.Save("Books.xml");
    }
    private void buttonDeleteNode_Click(object sender, EventArgs e) {
        XmlDocument document = new XmlDocument();
        document.Load("Books.xml");
        XmlElement root = document.DocumentElement;
        if (root.HasChildNodes) {
            XmlNode book = root.LastChild;
            root.RemoveChild(book);
            document.Save("Books.xml");
        }
    }
    private void buttonSelect_Click(object sender, EventArgs e) {
        XmlDocument document = new XmlDocument();
        document.Load("Books.xml");
        XmlElement root = document.DocumentElement;
        XmlNodeList nodeList = root.SelectNodes("//book[@pages="1000"]");
        foreach (XmlNode n in nodeList) {
            MessageBox.Show(n.InnerText);
        }
    }
    private void InitializeComponent() {
        this.buttonLoopThroughDocument = new System.Windows.Forms.Button();
        this.listBoxXmlNodes = new System.Windows.Forms.ListBox();
        this.buttonCreateNode = new System.Windows.Forms.Button();
        this.buttonDeleteNode = new System.Windows.Forms.Button();
        this.buttonSelect = new System.Windows.Forms.Button();
        this.SuspendLayout();
        // 
        // buttonLoopThroughDocument
        // 
        this.buttonLoopThroughDocument.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
        this.buttonLoopThroughDocument.Location = new System.Drawing.Point(444, 13);
        this.buttonLoopThroughDocument.Name = "buttonLoopThroughDocument";
        this.buttonLoopThroughDocument.TabIndex = 0;
        this.buttonLoopThroughDocument.Text = "Loop";
        this.buttonLoopThroughDocument.Click += new System.EventHandler(this.buttonLoopThroughDocument_Click);
        // 
        // listBoxXmlNodes
        // 
        this.listBoxXmlNodes.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.listBoxXmlNodes.FormattingEnabled = true;
        this.listBoxXmlNodes.Location = new System.Drawing.Point(13, 13);
        this.listBoxXmlNodes.Name = "listBoxXmlNodes";
        this.listBoxXmlNodes.Size = new System.Drawing.Size(424, 225);
        this.listBoxXmlNodes.TabIndex = 1;
        // 
        // buttonCreateNode
        // 
        this.buttonCreateNode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
        this.buttonCreateNode.Location = new System.Drawing.Point(444, 43);
        this.buttonCreateNode.Name = "buttonCreateNode";
        this.buttonCreateNode.TabIndex = 2;
        this.buttonCreateNode.Text = "Create Node";
        this.buttonCreateNode.Click += new System.EventHandler(this.buttonCreateNode_Click);
        // 
        // buttonDeleteNode
        // 
        this.buttonDeleteNode.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
        this.buttonDeleteNode.Location = new System.Drawing.Point(444, 73);
        this.buttonDeleteNode.Name = "buttonDeleteNode";
        this.buttonDeleteNode.TabIndex = 3;
        this.buttonDeleteNode.Text = "Delete Node";
        this.buttonDeleteNode.Visible = false;
        this.buttonDeleteNode.Click += new System.EventHandler(this.buttonDeleteNode_Click);
        // 
        // buttonSelect
        // 
        this.buttonSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
        this.buttonSelect.Location = new System.Drawing.Point(444, 103);
        this.buttonSelect.Name = "buttonSelect";
        this.buttonSelect.TabIndex = 4;
        this.buttonSelect.Text = "Select";
        this.buttonSelect.Visible = false;
        this.buttonSelect.Click += new System.EventHandler(this.buttonSelect_Click);
        // 
        // Form1
        // 
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(531, 250);
        this.Controls.Add(this.buttonSelect);
        this.Controls.Add(this.buttonDeleteNode);
        this.Controls.Add(this.buttonCreateNode);
        this.Controls.Add(this.listBoxXmlNodes);
        this.Controls.Add(this.buttonLoopThroughDocument);
        this.Name = "Form1";
        this.Text = "Xml Nodes";
        this.ResumeLayout(false);
    }

    private System.Windows.Forms.Button buttonLoopThroughDocument;
    private System.Windows.Forms.ListBox listBoxXmlNodes;
    private System.Windows.Forms.Button buttonCreateNode;
    private System.Windows.Forms.Button buttonDeleteNode;
    private System.Windows.Forms.Button buttonSelect;
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}


Form with list, button

/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
namespace Modeless
{
  /// <summary>
  /// Summary description for MainForm.
  /// </summary>
  public class MainFormDemo : System.Windows.Forms.Form
  {
    private System.Windows.Forms.ListBox listBox1;
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Button button2;
    private System.Windows.Forms.Button button3;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ruponentModel.Container components = null;
    AddItemForm frmAdd;
    public MainFormDemo()
    {
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();
      //
      // TODO: Add any constructor code after InitializeComponent call
      //
      frmAdd = new AddItemForm (this);
    }
    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if (components != null) 
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }
    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.listBox1 = new System.Windows.Forms.ListBox();
      this.button1 = new System.Windows.Forms.Button();
      this.button2 = new System.Windows.Forms.Button();
      this.button3 = new System.Windows.Forms.Button();
      this.SuspendLayout();
      // 
      // listBox1
      // 
      this.listBox1.Location = new System.Drawing.Point(42, 16);
      this.listBox1.Name = "listBox1";
      this.listBox1.Size = new System.Drawing.Size(208, 199);
      this.listBox1.TabIndex = 0;
      // 
      // button1
      // 
      this.button1.Location = new System.Drawing.Point(17, 240);
      this.button1.Name = "button1";
      this.button1.TabIndex = 1;
      this.button1.Text = "Add Item";
      this.button1.Click += new System.EventHandler(this.button1_Click);
      // 
      // button2
      // 
      this.button2.Location = new System.Drawing.Point(109, 240);
      this.button2.Name = "button2";
      this.button2.TabIndex = 2;
      this.button2.Text = "Delete Item";
      this.button2.Click += new System.EventHandler(this.button2_Click);
      // 
      // button3
      // 
      this.button3.DialogResult = System.Windows.Forms.DialogResult.Cancel;
      this.button3.Location = new System.Drawing.Point(201, 240);
      this.button3.Name = "button3";
      this.button3.TabIndex = 3;
      this.button3.Text = "Close";
      this.button3.Click += new System.EventHandler(this.button3_Click);
      // 
      // MainForm
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.CancelButton = this.button3;
      this.ClientSize = new System.Drawing.Size(292, 273);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.button3,
                                      this.button2,
                                      this.button1,
                                      this.listBox1});
      this.Name = "MainForm";
      this.Text = "MainForm";
      this.ResumeLayout(false);
    }
    #endregion
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
      Application.Run(new MainFormDemo());
    }

    private void button1_Click(object sender, System.EventArgs e)
    {
      if (frmAdd.IsDisposed == true)
        frmAdd = new AddItemForm (this);
      frmAdd.Show ();
    }
    private void button2_Click(object sender, System.EventArgs e)
    {
      if (listBox1.SelectedIndex < 0)
        return;
      object obj = listBox1.Items[listBox1.SelectedIndex];
      listBox1.Items.Remove (obj);
    }
    private void button3_Click(object sender, System.EventArgs e)
    {
      Application.Exit ();
    }
    public string AddItemToList (string strAdd)
    {
      if (strAdd == "")
        return ("");
      if (listBox1.FindString (strAdd, -1) < 0)
      {
        listBox1.Items.Add (strAdd);
        return ("");
      }
      MessageBox.Show ("\"" + strAdd + "\" is already in the list box", "Duplicate");
      return (strAdd);
    }
  }
  /// <summary>
  /// Summary description for AddItemForm.
  /// </summary>
  public class AddItemForm : System.Windows.Forms.Form
  {
    private System.Windows.Forms.TextBox textBox1;
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Button button2;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ruponentModel.Container components = null;
    MainFormDemo parent;
    public AddItemForm(MainFormDemo parent)
    {
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();
      //
      // TODO: Add any constructor code after InitializeComponent call
      //
      this.parent = parent;
    }
    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if(components != null)
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }
    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.textBox1 = new System.Windows.Forms.TextBox();
      this.button1 = new System.Windows.Forms.Button();
      this.button2 = new System.Windows.Forms.Button();
      this.SuspendLayout();
      // 
      // textBox1
      // 
      this.textBox1.Location = new System.Drawing.Point(28, 8);
      this.textBox1.Name = "textBox1";
      this.textBox1.Size = new System.Drawing.Size(224, 20);
      this.textBox1.TabIndex = 1;
      this.textBox1.Text = "";
      // 
      // button1
      // 
      this.button1.Location = new System.Drawing.Point(40, 48);
      this.button1.Name = "button1";
      this.button1.TabIndex = 2;
      this.button1.Text = "Add";
      this.button1.Click += new System.EventHandler(this.button1_Click_1);
      // 
      // button2
      // 
      this.button2.Location = new System.Drawing.Point(184, 48);
      this.button2.Name = "button2";
      this.button2.TabIndex = 3;
      this.button2.Text = "Close";
      this.button2.Click += new System.EventHandler(this.button2_Click);
      // 
      // AddItemForm
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(280, 77);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.button2,
                                      this.button1,
                                      this.textBox1});
      this.Name = "AddItemForm";
      this.Text = "AddItem";
      this.ResumeLayout(false);
    }
    #endregion
    private void button1_Click_1(object sender, System.EventArgs e)
    {
      textBox1.Text = parent.AddItemToList (textBox1.Text);
//      textBox1.Text = "";
    }
    private void button2_Click(object sender, System.EventArgs e)
    {
      this.Dispose ();
      this.Close ();
    }
  }
}


ListBox and Metafile Enum

/*
GDI+ Programming in C# and VB .NET
by Nick Symmonds
Publisher: Apress
ISBN: 159059035X
*/
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
namespace MetaEnum_c
{
    public class MetaEnum : System.Windows.Forms.Form
    {
        private System.ruponentModel.Container components = null;
        private System.Windows.Forms.ListBox LB;
        Metafile mf = new  Metafile("mymeta.emf");
        public MetaEnum()
        {
            InitializeComponent();
        }
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
            mf.Dispose();
            base.Dispose( disposing );
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
      this.LB = new System.Windows.Forms.ListBox();
      this.SuspendLayout();
      // 
      // LB
      // 
      this.LB.Location = new System.Drawing.Point(208, 232);
      this.LB.Name = "LB";
      this.LB.Size = new System.Drawing.Size(168, 121);
      this.LB.TabIndex = 1;
      // 
      // MetaEnum
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(392, 373);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                  this.LB});
      this.MaximizeBox = false;
      this.MinimizeBox = false;
      this.Name = "MetaEnum";
      this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
      this.Text = "MetaEnum";
      this.Load += new System.EventHandler(this.MetaEnum_Load);
      this.ResumeLayout(false);
      }
        #endregion
        [STAThread]
        static void Main() 
        {
            Application.Run(new MetaEnum());
        }
    private void MetaEnum_Load(object sender, System.EventArgs e)
    {
    }
    protected override void OnPaint(PaintEventArgs e)
    {
      Graphics G = e.Graphics;
      G.EnumerateMetafile( mf, new Point( 50, 50 ), 
                   new Graphics.EnumerateMetafileProc(this.MetafileCallback) );
    }
    // Define callback method.
    private bool MetafileCallback( EmfPlusRecordType recordType, int flags, 
                                                 int dataSize, IntPtr data,
                                                 PlayRecordCallback callbackData)
    {
      LB.Items.Add(recordType);
      if ( dataSize > 0 )
      {
        byte[] D = new byte[dataSize];
        Marshal.Copy(data, D, 0, dataSize);
        mf.PlayRecord(recordType, flags, dataSize, D);
      }
      return true;
    }
    }
}

<A href="http://www.nfex.ru/Code/CSharpDownload/MetaEnum-c.zip">MetaEnum-c.zip( 1 k)</a>


List Box click event

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
  private System.Windows.Forms.Label lblSaturation;
  private System.Windows.Forms.Label lblHue;
  private System.Windows.Forms.Label lblBrightness;
  private System.Windows.Forms.Label Label1;
  private System.Windows.Forms.ListBox lstColors;
  public Form1()
  {
    InitializeComponent();
    string[] colorNames  = System.Enum.GetNames(typeof(KnownColor));
    lstColors.Items.AddRange(colorNames);
  }
  private void lstColors_SelectedIndexChanged(object sender, EventArgs e)
  {
    KnownColor selectedColor = (KnownColor)System.Enum.Parse(typeof(KnownColor), lstColors.Text);
    this.BackColor = System.Drawing.Color.FromKnownColor(selectedColor);
    lblBrightness.Text = "Brightness = " + this.BackColor.GetBrightness().ToString();
    lblHue.Text = "Hue = " + this.BackColor.GetHue().ToString();
    lblSaturation.Text = "Saturation = " + this.BackColor.GetSaturation().ToString();
  }
  private void InitializeComponent()
  {
    this.lblSaturation = new System.Windows.Forms.Label();
    this.lblHue = new System.Windows.Forms.Label();
    this.lblBrightness = new System.Windows.Forms.Label();
    this.Label1 = new System.Windows.Forms.Label();
    this.lstColors = new System.Windows.Forms.ListBox();
    this.SuspendLayout();
    // 
    // lblSaturation
    // 
    this.lblSaturation.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
    this.lblSaturation.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    this.lblSaturation.FlatStyle = System.Windows.Forms.FlatStyle.System;
    this.lblSaturation.Location = new System.Drawing.Point(268, 57);
    this.lblSaturation.Name = "lblSaturation";
    this.lblSaturation.Size = new System.Drawing.Size(136, 20);
    this.lblSaturation.TabIndex = 4;
    this.lblSaturation.Text = " Saturation";
    // 
    // lblHue
    // 
    this.lblHue.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
    this.lblHue.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    this.lblHue.FlatStyle = System.Windows.Forms.FlatStyle.System;
    this.lblHue.Location = new System.Drawing.Point(268, 33);
    this.lblHue.Name = "lblHue";
    this.lblHue.Size = new System.Drawing.Size(136, 20);
    this.lblHue.TabIndex = 3;
    this.lblHue.Text = " Hue";
    // 
    // lblBrightness
    // 
    this.lblBrightness.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
    this.lblBrightness.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    this.lblBrightness.FlatStyle = System.Windows.Forms.FlatStyle.System;
    this.lblBrightness.Location = new System.Drawing.Point(268, 9);
    this.lblBrightness.Name = "lblBrightness";
    this.lblBrightness.Size = new System.Drawing.Size(136, 20);
    this.lblBrightness.TabIndex = 2;
    this.lblBrightness.Text = " Brightness";
    // 
    // Label1
    // 
    this.Label1.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
    this.Label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    this.Label1.FlatStyle = System.Windows.Forms.FlatStyle.System;
    this.Label1.Location = new System.Drawing.Point(12, 9);
    this.Label1.Name = "Label1";
    this.Label1.Size = new System.Drawing.Size(200, 20);
    this.Label1.TabIndex = 0;
    this.Label1.Text = " Choose a Background Color:";
    // 
    // lstColors
    // 
    this.lstColors.FormattingEnabled = true;
    this.lstColors.Location = new System.Drawing.Point(12, 37);
    this.lstColors.Name = "lstColors";
    this.lstColors.Size = new System.Drawing.Size(200, 238);
    this.lstColors.TabIndex = 1;
    this.lstColors.SelectedIndexChanged += new System.EventHandler(this.lstColors_SelectedIndexChanged);
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(430, 284);
    this.Controls.Add(this.lblSaturation);
    this.Controls.Add(this.lblHue);
    this.Controls.Add(this.lblBrightness);
    this.Controls.Add(this.Label1);
    this.Controls.Add(this.lstColors);
    this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    this.Name = "Form1";
    this.Text = "Color Changer";
    this.ResumeLayout(false);
  }
  [STAThread]
  static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
  }
}


ListBox Demo 2

using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;

public class ListBoxDemo : System.Windows.Forms.Form {
    private System.ruponentModel.Container container;
    private System.Windows.Forms.Button buttonAdd;
    private System.Windows.Forms.Button buttonClose;
    private System.Windows.Forms.Button buttonModify;
    private System.Windows.Forms.Button buttonDelete;
    private System.Windows.Forms.Button buttonMoveUp;
    private System.Windows.Forms.Button buttonMoveDown;
    private System.Windows.Forms.ListBox listbox;
    private System.Windows.Forms.TextBox textbox;
    private System.Windows.Forms.Label label;
    private int nSelectedIndex;
    //*********SIZE & LOCATION******************//
    // COMPONENT - BUTTON(s) aligned along X-axis.
    const int BUTTON_LENGTH = 50;
    const int BUTTON_HEIGHT = 20;
    const int FIRSTBUTTON_XPOS = 20;
    const int FIRSTBUTTON_YPOS =220;
    const int XSPACING = 70; // (Note: XSPACING >= BUTTON_LENGTH)
    const int YSPACING =  0;
    //COMPONENT - MOVE BUTTONS
    const int MBUTTON_LENGTH = 20;
    const int MBUTTON_HEIGHT = 20;
    const int FIRSTMBUTTON_XPOS = 220;
    const int FIRSTMBUTTON_YPOS =70;
    const int SECONDMBUTTON_XPOS = 220;
    const int SECONDMBUTTON_YPOS =100;
    // COMPONENT - LISTBOX
    const int LISTBOX_LENGTH = 3*BUTTON_LENGTH;
    const int LISTBOX_HEIGHT = 6*BUTTON_HEIGHT;
    const int LISTBOX_XPOS = 50;
    const int LISTBOX_YPOS = 50;
    // COMPONENT - LABEL
    const int LABEL_LENGTH = 50;
    const int LABEL_HEIGHT = 50;
    const int LABEL_XPOS = 20; // align it with first button
    const int LABEL_YPOS = 173;
    // COMPONENT - TEXTBOX
    const int TEXTBOX_LENGTH = 120;
    const int TEXTBOX_HEIGHT = 50;
    const int TEXTBOX_XPOS =  70;
    const int TEXTBOX_YPOS = 170;
    public ListBoxDemo() : base() {
        InitializeComponent();
    }
    private void InitializeComponent() {
        // this
        this.container = new System.ruponentModel.Container();
        this.Text="List Box";
        // buttonAdd
        this.buttonAdd = new System.Windows.Forms.Button();
        buttonAdd.Location = new
            System.Drawing.Point(FIRSTBUTTON_XPOS,FIRSTBUTTON_YPOS);
        buttonAdd.Text = "&Add";
        buttonAdd.Size = new System.Drawing.Size(BUTTON_LENGTH,BUTTON_HEIGHT);
        buttonAdd.Click += new System.EventHandler(this.buttonAdd_Click);
        buttonAdd.Enabled = false;
        this.Controls.Add(this.buttonAdd);
        //buttonModify
        this.buttonModify = new System.Windows.Forms.Button();
        buttonModify.Location = new
            System.Drawing.Point(FIRSTBUTTON_XPOS+XSPACING,FIRSTBUTTON_YPOS+YSPACING);
        buttonModify.Text = "&Modify";
        buttonModify.Size = new System.Drawing.Size(BUTTON_LENGTH,BUTTON_HEIGHT);
        buttonModify.Click += new System.EventHandler(this.buttonModify_Click);
        buttonModify.Enabled = false;
        this.Controls.Add(this.buttonModify);
        //buttonDelete
        this.buttonDelete = new System.Windows.Forms.Button();
        buttonDelete.Location = new
            System.Drawing.Point(FIRSTBUTTON_XPOS+2*XSPACING,FIRSTBUTTON_YPOS+2*YSPACING);
        buttonDelete.Text = "&Delete";
        buttonDelete.Size = new System.Drawing.Size(BUTTON_LENGTH,BUTTON_HEIGHT);
        buttonDelete.Enabled = false;
        buttonDelete.Click += new System.EventHandler(this.buttonDelete_Click);
        this.Controls.Add(this.buttonDelete);
        // buttonClose
        this.buttonClose = new System.Windows.Forms.Button();
        buttonClose.Location = new
            System.Drawing.Point(FIRSTBUTTON_XPOS+3*XSPACING,FIRSTBUTTON_YPOS+3*YSPACING);
        buttonClose.Text = "&Close";
        buttonClose.Size = new System.Drawing.Size(BUTTON_LENGTH,BUTTON_HEIGHT);
        buttonClose.Click += new System.EventHandler(this.buttonClose_Click);
        this.Controls.Add(this.buttonClose);
        // listbox
        this.listbox = new System.Windows.Forms.ListBox();
        listbox.Location = new System.Drawing.Point(LISTBOX_XPOS,LISTBOX_YPOS);
        listbox.Size = new System.Drawing.Size(LISTBOX_LENGTH,LISTBOX_HEIGHT);
        listbox.Click += new 
        
        System.EventHandler(this.listbox_SelectedIndexChanged);
        listbox.BackColor = (Color)System.Drawing.SystemColors.Desktop;
        this.Controls.Add(this.listbox);
        // label
        this.label = new System.Windows.Forms.Label();
        label.Location = new System.Drawing.Point(LABEL_XPOS,LABEL_YPOS);
        label.Size = new System.Drawing.Size(LABEL_LENGTH,LABEL_HEIGHT);
        label.Text = "Enter:";
        this.Controls.Add(this.label);
        // textbox
        this.textbox = new System.Windows.Forms.TextBox();
        textbox.Location = new System.Drawing.Point(TEXTBOX_XPOS,TEXTBOX_YPOS);
        textbox.Click += new System.EventHandler(this.textbox_Click);
        textbox.Size = new System.Drawing.Size(TEXTBOX_LENGTH,TEXTBOX_HEIGHT);
        this.Controls.Add(this.textbox);
        // buttonMoveUp
        this.buttonMoveUp = new System.Windows.Forms.Button();
        buttonMoveUp.Location = new
            System.Drawing.Point(FIRSTMBUTTON_XPOS,FIRSTMBUTTON_YPOS);
        buttonMoveUp.Text = "<";
        buttonMoveUp.Size = new 
        
        System.Drawing.Size(MBUTTON_LENGTH,MBUTTON_HEIGHT);
        buttonMoveUp.Click += new System.EventHandler(this.buttonMoveUp_Click);
        buttonMoveUp.Enabled = false;
        this.Controls.Add(this.buttonMoveUp);
        // buttonMoveDown
        this.buttonMoveDown = new System.Windows.Forms.Button();
        buttonMoveDown.Location = new
            System.Drawing.Point(SECONDMBUTTON_XPOS,SECONDMBUTTON_YPOS);
        buttonMoveDown.Text = ">";
        buttonMoveDown.Size = new 
        
        System.Drawing.Size(MBUTTON_LENGTH,MBUTTON_HEIGHT);
        buttonMoveDown.Click += new 
        System.EventHandler(this.buttonMoveDown_Click);
        buttonMoveDown.Enabled = false;
        this.Controls.Add(this.buttonMoveDown);
    }
    protected void textbox_Click(Object sender, System.EventArgs e) {
        this.buttonAdd.Enabled = true;
        if (this.listbox.Items.Count>0)
            EnableAllListBoxButtons();
    }
    protected void listbox_SelectedIndexChanged(object sender, System.EventArgs e) {
        nSelectedIndex = this.listbox.SelectedIndex;
        string szSelected = (string)this.listbox.SelectedItem;
        this.textbox.Text = szSelected;
    }
    protected void buttonAdd_Click(Object sender, System.EventArgs e) {
        if (this.textbox.Text !="") {
        this.listbox.Items.Add(this.textbox.Text);
        this.textbox.Text = "";
        EnableAllListBoxButtons();
        }
    }
    protected void buttonModify_Click(Object sender, System.EventArgs e) {
        this.listbox.Items[nSelectedIndex] = this.textbox.Text;
    }
    protected void buttonDelete_Click(Object sender, System.EventArgs e) {
        nSelectedIndex = this.listbox.SelectedIndex;
        this.listbox.Items.Remove(nSelectedIndex);
        System.Console.WriteLine("Remove fn does not work...");
    }
    protected void buttonClose_Click(Object sender, System.EventArgs e) {
        this.Close();
    }
    protected void buttonMoveUp_Click(Object sender, System.EventArgs e) {
        if (this.listbox.SelectedIndex >0)
            this.listbox.SelectedIndex--;
    }
    protected void buttonMoveDown_Click(Object sender, System.EventArgs e) {
        if (this.listbox.SelectedIndex < this.listbox.Items.Count-1)
            this.listbox.SelectedIndex++;
    }
    private void EnableAllListBoxButtons() {
        this.buttonAdd.Enabled = true;
        this.buttonModify.Enabled = true;
        this.buttonDelete.Enabled = true;
        this.buttonMoveUp.Enabled = true;
        this.buttonMoveDown.Enabled = true;
    }
    [STAThread]
    public static void Main(string[] args) {
        Application.Run(new ListBoxDemo());
    }
} // class


ListBox: font and image

/*
Professional Windows GUI Programming Using C#
by Jay Glynn, Csaba Torok, Richard Conway, Wahid Choudhury, 
   Zach Greenvoss, Shripad Kulkarni, Neil Whitlow
Publisher: Peer Information
ISBN: 1861007663
*/
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
namespace MyListBox
{
  /// <summary>
  /// Summary description for MyListBox.
  /// </summary>
  public class MyListBox : System.Windows.Forms.Form
  {
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ruponentModel.Container components = null;
    private System.Windows.Forms.Label label1;
    private System.Windows.Forms.Label label2;
    private System.Windows.Forms.Label label3;
    private System.Windows.Forms.ListBox VARIABLE;
    private System.Windows.Forms.ListBox FIXED;
    private System.Windows.Forms.ListBox SIMPLE;
    private System.Windows.Forms.ListBox MULTI_COLUMN;
    private System.Windows.Forms.Label label4;
    private System.Windows.Forms.ListBox MULTI_SELECTION;
    private System.Windows.Forms.Label label5;
    static int delta = 5 ;
    string[] ListItems = new string[7];
    public MyListBox()
    {
      ListItems[0] = "Apples";    
      ListItems[1] = "Oranges";    
      ListItems[2] = "Mangoes";    
      ListItems[3] = "PineApple";    
      ListItems[4] = "Strawbverries";    
      ListItems[5] = "Bananas";    
      ListItems[6] = "GrapeFruit";    
      //
      // Required for Windows Form Designer support
      //
      InitializeComponent();
      //
      // TODO: Add any constructor code after InitializeComponent call
      //
    }
    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
      if( disposing )
      {
        if (components != null) 
        {
          components.Dispose();
        }
      }
      base.Dispose( disposing );
    }
    #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
      this.label1 = new System.Windows.Forms.Label();
      this.label2 = new System.Windows.Forms.Label();
      this.label3 = new System.Windows.Forms.Label();
      this.VARIABLE = new System.Windows.Forms.ListBox();
      this.FIXED = new System.Windows.Forms.ListBox();
      this.SIMPLE = new System.Windows.Forms.ListBox();
      this.MULTI_COLUMN = new System.Windows.Forms.ListBox();
      this.label4 = new System.Windows.Forms.Label();
      this.MULTI_SELECTION = new System.Windows.Forms.ListBox();
      this.label5 = new System.Windows.Forms.Label();
      this.SuspendLayout();
      // 
      // label1
      // 
      this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
      this.label1.Location = new System.Drawing.Point(208, 24);
      this.label1.Name = "label1";
      this.label1.Size = new System.Drawing.Size(192, 23);
      this.label1.TabIndex = 1;
      this.label1.Text = "Fixed Owner Draw List Box";
      // 
      // label2
      // 
      this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
      this.label2.Location = new System.Drawing.Point(24, 24);
      this.label2.Name = "label2";
      this.label2.Size = new System.Drawing.Size(168, 23);
      this.label2.TabIndex = 2;
      this.label2.Text = "Simple List Box";
      // 
      // label3
      // 
      this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
      this.label3.Location = new System.Drawing.Point(424, 24);
      this.label3.Name = "label3";
      this.label3.Size = new System.Drawing.Size(208, 16);
      this.label3.TabIndex = 1;
      this.label3.Text = "Variable Owner Draw  List Box";
      // 
      // VARIABLE
      // 
      this.VARIABLE.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable;
      this.VARIABLE.Location = new System.Drawing.Point(424, 56);
      this.VARIABLE.Name = "VARIABLE";
      this.VARIABLE.Size = new System.Drawing.Size(200, 240);
      this.VARIABLE.TabIndex = 5;
      this.VARIABLE.MeasureItem += new System.Windows.Forms.MeasureItemEventHandler(this.VARIABLE_MeasureItem);
      this.VARIABLE.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.VARIABLE_DrawItem);
      this.VARIABLE.SelectedIndexChanged += new System.EventHandler(this.VARIABLE_SelectedIndexChanged);
      // 
      // FIXED
      // 
      this.FIXED.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
      this.FIXED.Location = new System.Drawing.Point(208, 56);
      this.FIXED.Name = "FIXED";
      this.FIXED.Size = new System.Drawing.Size(208, 238);
      this.FIXED.TabIndex = 4;
      this.FIXED.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.FIXED_DrawItem);
      this.FIXED.SelectedIndexChanged += new System.EventHandler(this.FIXED_SelectedIndexChanged);
      // 
      // SIMPLE
      // 
      this.SIMPLE.Location = new System.Drawing.Point(24, 56);
      this.SIMPLE.Name = "SIMPLE";
      this.SIMPLE.Size = new System.Drawing.Size(176, 238);
      this.SIMPLE.TabIndex = 3;
      this.SIMPLE.SelectedIndexChanged += new System.EventHandler(this.SIMPLE_SelectedIndexChanged);
      // 
      // MULTI_COLUMN
      // 
      this.MULTI_COLUMN.Location = new System.Drawing.Point(24, 344);
      this.MULTI_COLUMN.MultiColumn = true;
      this.MULTI_COLUMN.Name = "MULTI_COLUMN";
      this.MULTI_COLUMN.Size = new System.Drawing.Size(224, 69);
      this.MULTI_COLUMN.TabIndex = 6;
      this.MULTI_COLUMN.SelectedIndexChanged += new System.EventHandler(this.MULTI_COLUMN_SelectedIndexChanged);
      // 
      // label4
      // 
      this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
      this.label4.Location = new System.Drawing.Point(24, 320);
      this.label4.Name = "label4";
      this.label4.Size = new System.Drawing.Size(168, 24);
      this.label4.TabIndex = 7;
      this.label4.Text = "Multi Column ListBox";
      // 
      // MULTI_SELECTION
      // 
      this.MULTI_SELECTION.Location = new System.Drawing.Point(296, 344);
      this.MULTI_SELECTION.MultiColumn = true;
      this.MULTI_SELECTION.Name = "MULTI_SELECTION";
      this.MULTI_SELECTION.SelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
      this.MULTI_SELECTION.Size = new System.Drawing.Size(200, 147);
      this.MULTI_SELECTION.TabIndex = 6;
      this.MULTI_SELECTION.SelectedIndexChanged += new System.EventHandler(this.MULTI_SELECTION_SelectedIndexChanged);
      // 
      // label5
      // 
      this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
      this.label5.Location = new System.Drawing.Point(296, 320);
      this.label5.Name = "label5";
      this.label5.Size = new System.Drawing.Size(208, 24);
      this.label5.TabIndex = 7;
      this.label5.Text = "Multi Selection ListBox";
      // 
      // MyListBox
      // 
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(640, 493);
      this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                      this.label4,
                                      this.MULTI_COLUMN,
                                      this.VARIABLE,
                                      this.FIXED,
                                      this.SIMPLE,
                                      this.label2,
                                      this.label1,
                                      this.label3,
                                      this.MULTI_SELECTION,
                                      this.label5});
      this.Name = "MyListBox";
      this.Text = "ListBox Style";
      this.Load += new System.EventHandler(this.MyListBox_Load);
      this.ResumeLayout(false);
    }
    #endregion
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
      Application.Run(new MyListBox());
    }
    private void MyListBox_Load(object sender, System.EventArgs e)
    {  
      // Set the height of the ListBox with OwnerDrawFixed property
      FIXED.ItemHeight = 35 ;
      // Populate all the ListBoxes
      for ( int i=0; i < ListItems.Length; i++)
      {
        MULTI_SELECTION.Items.Add(ListItems[i]);
        MULTI_COLUMN.Items.Add(ListItems[i]);
        SIMPLE.Items.Add(ListItems[i]);
        FIXED.Items.Add(ListItems[i]);
        VARIABLE.Items.Add(ListItems[i]);
      }
    }
    private void FIXED_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
    {
      //Select the Icon that you want to display
      Icon i = new Icon("TICK.ico");
      // Get the Bounding rectangle
      Rectangle rc = new Rectangle(e.Bounds.X + delta , e.Bounds.Y + delta , e.Bounds.Width-10, e.Bounds.Height-delta);
      
      Console.WriteLine(e.State.ToString());
      // Setup the stringformatting object
      StringFormat sf = new StringFormat();
      sf.Alignment = StringAlignment.Center ;
      
      // Get the item text
      FIXED = (ListBox)sender ; 
      string str = (string)FIXED.Items[e.Index];  
      // Draw the rectangle
      e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Black) , 2) , rc);
      e.Graphics.FillRectangle(new SolidBrush(Color.White) , rc);
      // Check if the item is selected
      if ( e.State == ( DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))
      {
        // Paint the item that if not selected
        e.Graphics.FillRectangle(new SolidBrush(Color.White) , rc);
        e.Graphics.DrawString( str , new Font("Ariel" , 12) , new SolidBrush(Color.Black), rc ,sf);
        e.DrawFocusRectangle();
      }
      else
      {
        // Paint the item accordingly if it is selected
        e.DrawFocusRectangle();
        e.Graphics.FillRectangle(new SolidBrush(Color.LightYellow) , rc);
        e.Graphics.DrawIcon(i, e.Bounds.X , e.Bounds.Y+5);
        e.Graphics.DrawString( str , new Font("Ariel" , 12) , new SolidBrush(Color.Black), rc ,sf);
      }
    }
    private void VARIABLE_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
    {
      //Select the Icon that you want to display
      Icon i = new Icon("TICK.ico");
      // Get the Bounding rectangle
      Rectangle rc = new Rectangle(e.Bounds.X + delta , e.Bounds.Y + delta , e.Bounds.Width-10, e.Bounds.Height-delta);
      Console.WriteLine(e.State.ToString());
      // Setup the stringformatting object
      StringFormat sf = new StringFormat();
      sf.Alignment = StringAlignment.Center ;
      
      // UnBox the sender
      VARIABLE = (ListBox)sender ; 
      // Get the item text
      string str = (string)VARIABLE.Items[e.Index];  
      // Draw the rectangle
      e.Graphics.DrawRectangle(new Pen(new SolidBrush(Color.Black) , 2) , rc);
      
      // Fill the rectangle with white background. Default Item not selected
      e.Graphics.FillRectangle(new SolidBrush(Color.White) , rc);
      // Check if the item is selected
      if ( e.State == ( DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))
      {
        // Paint the item that if not selected
        e.Graphics.FillRectangle(new SolidBrush(Color.White) , rc);
        e.Graphics.DrawString( str , new Font("Ariel" , 12) , new SolidBrush(Color.Black), rc ,sf);
        e.DrawFocusRectangle();
      }
      else
      {
        // Paint the item accordingly if it is selected
        e.DrawFocusRectangle();
        e.Graphics.FillRectangle(new SolidBrush(Color.LightCyan) , rc);
        e.Graphics.DrawIcon(i, e.Bounds.X , e.Bounds.Y+5);
        e.Graphics.DrawString( str , new Font("Ariel" , 12) , new SolidBrush(Color.Black), rc ,sf);
      }
    }
    private void VARIABLE_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
    {
      // For every second item in the VariableListBox, set the itemheight to 55
      if ( e.Index %2 == 0 ) 
      {
        e.ItemHeight = 55 ;
      }
      else
      {
        // For all other items set the items to 33
        e.ItemHeight = 33 ; 
      }
    }
    private void SIMPLE_SelectedIndexChanged(object sender, System.EventArgs e)
    {
      // Unbox the sender
      SIMPLE = (ListBox)sender ;
      // Get the position of the item selected
      int posSelected = SIMPLE.SelectedIndex ; 
      // Get the item text
      string str = (string)SIMPLE.Items[posSelected];
      MessageBox.Show("ITEM SELECTED FROM SIMPLE LIST BOX = " + str , "Simple ListBox");
    }
    private void FIXED_SelectedIndexChanged(object sender, System.EventArgs e)
    {
      // Unbox the sender
      FIXED = (ListBox)sender ;
      // Get the position of the item selected
      int posSelected = FIXED.SelectedIndex ; 
      // Get the item text
      string str = (string)FIXED.Items[posSelected];
      MessageBox.Show("ITEM SELECTED FROM FIXED LIST BOX = " + str , "Fixed Height ListBox");
    }
    private void VARIABLE_SelectedIndexChanged(object sender, System.EventArgs e)
    {
      // Unbox the sender
      VARIABLE = (ListBox)sender ;
      // Get the position of the item selected
      int posSelected =  VARIABLE.SelectedIndex ; 
      // Get the item text
      string str = (string) VARIABLE.Items[posSelected];
      MessageBox.Show("ITEM SELECTED FROM  VARIABLE LIST BOX = " + str , "Variable Height ListBox");
    }
    private void MULTI_COLUMN_SelectedIndexChanged(object sender, System.EventArgs e)
    {
      // Unbox the sender
      MULTI_COLUMN = (ListBox)sender ;
      // Get the position of the item selected
      int posSelected =  MULTI_COLUMN.SelectedIndex ; 
      // Get the item text
      string str = (string) MULTI_COLUMN.Items[posSelected];
      MessageBox.Show("ITEM SELECTED FROM  MULTI_COLUM LIST BOX = " + str , "Multi Column");
    }
    private void MULTI_SELECTION_SelectedIndexChanged(object sender, System.EventArgs e)
    {
      // Unbox the sender
      MULTI_SELECTION = (ListBox)sender ;
      string str = "" ; 
      // Get the list of selected index"s
      for ( int i=0; i < MULTI_SELECTION.SelectedIndices.Count; i++)
      {
        // Get the index
        int posSelected =  MULTI_SELECTION.SelectedIndices[i];
        // Get the item text at the index
        str = str + (string)MULTI_SELECTION.Items[posSelected] + "," ; 
      }
      MessageBox.Show("ITEM SELECTED FROM  MULTI_SELECTION LIST BOX = " + str , "Multi Selection");
    }
  }
}

<A href="http://www.nfex.ru/Code/CSharpDownload/MyListBox.zip">MyListBox.zip( 49 k)</a>


ListBox Objects

/*
User Interfaces in C#: Windows Forms and Custom Controls
by Matthew MacDonald
Publisher: Apress
ISBN: 1590590457
*/
using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
namespace ListBoxObjects
{
    /// <summary>
    /// Summary description for ListBoxObjects.
    /// </summary>
    public class ListBoxObjects : System.Windows.Forms.Form
    {
        internal System.Windows.Forms.CheckedListBox lstCustomers;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ruponentModel.Container components = null;
        public ListBoxObjects()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();
            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if (components != null) 
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }
        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.lstCustomers = new System.Windows.Forms.CheckedListBox();
            this.SuspendLayout();
            // 
            // lstCustomers
            // 
            this.lstCustomers.Location = new System.Drawing.Point(8, 8);
            this.lstCustomers.Name = "lstCustomers";
            this.lstCustomers.Size = new System.Drawing.Size(264, 196);
            this.lstCustomers.TabIndex = 2;
            // 
            // ListBoxObjects
            // 
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
            this.ClientSize = new System.Drawing.Size(280, 218);
            this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                          this.lstCustomers});
            this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
            this.Name = "ListBoxObjects";
            this.Text = "ListBox Objects";
            this.Load += new System.EventHandler(this.ListBoxObjects_Load);
            this.ResumeLayout(false);
        }
        #endregion
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() 
        {
            Application.Run(new ListBoxObjects());
        }
        private void ListBoxObjects_Load(object sender, System.EventArgs e)
        {
            lstCustomers.Items.Add(new Customer("Maurice", "Respighi", DateTime.Now));
            lstCustomers.Items.Add(new Customer("Sam", "Digweed", DateTime.Now));
            lstCustomers.Items.Add(new Customer("Faria", "Khan", DateTime.Now));
        }
    }
}
public class Customer
{
    public string FirstName;
    public string LastName;
    public DateTime BirthDate;
    
    public Customer()
    {}
    public Customer(string firstName, string lastName, DateTime birthDate)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
        this.BirthDate = birthDate;
    }
    
    public override string ToString()
    {
        return FirstName + " " + LastName;
    }
}


ListBox selected Item changed event

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
  private System.Windows.Forms.ListBox lstCustomers;
  public Form1() {
        InitializeComponent();
    lstCustomers.Items.Add(new Customer("A", "B", DateTime.Now.AddDays(-10)));
    lstCustomers.Items.Add(new Customer("C", "D", DateTime.Now.AddDays(-100)));
    lstCustomers.Items.Add(new Customer("F", "G", DateTime.Now.AddDays(-500)));
  }
  private void lstCustomers_SelectedIndexChanged(object sender, EventArgs e)
  {
    Customer cust = (Customer)lstCustomers.SelectedItem;
    MessageBox.Show("Birth Date: " + cust.BirthDate.ToShortDateString());
  }
  private void InitializeComponent()
  {
    this.lstCustomers = new System.Windows.Forms.ListBox();
    this.SuspendLayout();
    // 
    // lstCustomers
    // 
    this.lstCustomers.FormattingEnabled = true;
    this.lstCustomers.Location = new System.Drawing.Point(12, 12);
    this.lstCustomers.Name = "lstCustomers";
    this.lstCustomers.Size = new System.Drawing.Size(120, 95);
    this.lstCustomers.TabIndex = 0;
    this.lstCustomers.SelectedIndexChanged += new System.EventHandler(this.lstCustomers_SelectedIndexChanged);
    // 
    // Form1
    // 
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(308, 230);
    this.Controls.Add(this.lstCustomers);
    this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
    this.Name = "Form1";
    this.Text = "Form1";
    this.ResumeLayout(false);
  }

  [STAThread]
  static void Main()
  {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
  }
}
public class Customer
{
  public string FirstName;
  public string LastName;
  public DateTime BirthDate;
  public Customer() { }
  public Customer(string firstName, string lastName, DateTime birthDate)
  {
    FirstName = firstName;
    LastName = lastName;
    BirthDate = birthDate;
  }
  public override string ToString()
  {
    return FirstName + " " + LastName;
  }
}


Remove item if one is selected from ListBox

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
      private System.Windows.Forms.ListBox displayListBox;
      private System.Windows.Forms.TextBox inputTextBox;
      private System.Windows.Forms.Button addButton;
      private System.Windows.Forms.Button removeButton;
      private System.Windows.Forms.Button clearButton;
      
      public Form1() {
        InitializeComponent();
    }
      private void addButton_Click( object sender, EventArgs e )
      {
        displayListBox.Items.Add( inputTextBox.Text );
        inputTextBox.Clear();
      } 
      private void removeButton_Click( object sender, EventArgs e )
      {
        if ( displayListBox.SelectedIndex != -1 )
          displayListBox.Items.RemoveAt( displayListBox.SelectedIndex );
      }
      private void clearButton_Click( object sender, EventArgs e )
      {
         displayListBox.Items.Clear();
      }
      private void InitializeComponent()
      {
         this.displayListBox = new System.Windows.Forms.ListBox();
         this.inputTextBox = new System.Windows.Forms.TextBox();
         this.addButton = new System.Windows.Forms.Button();
         this.removeButton = new System.Windows.Forms.Button();
         this.clearButton = new System.Windows.Forms.Button();
         this.SuspendLayout();
         // 
         // displayListBox
         // 
         this.displayListBox.FormattingEnabled = true;
         this.displayListBox.Location = new System.Drawing.Point(13, 12);
         this.displayListBox.Name = "displayListBox";
         this.displayListBox.Size = new System.Drawing.Size(119, 238);
         this.displayListBox.TabIndex = 0;
         // 
         // inputTextBox
         // 
         this.inputTextBox.Location = new System.Drawing.Point(149, 12);
         this.inputTextBox.Name = "inputTextBox";
         this.inputTextBox.Size = new System.Drawing.Size(100, 20);
         this.inputTextBox.TabIndex = 1;
         // 
         // addButton
         // 
         this.addButton.Location = new System.Drawing.Point(149, 56);
         this.addButton.Name = "addButton";
         this.addButton.Size = new System.Drawing.Size(100, 36);
         this.addButton.TabIndex = 2;
         this.addButton.Text = "Add";
         this.addButton.Click += new System.EventHandler(this.addButton_Click);
         // 
         // removeButton
         // 
         this.removeButton.Location = new System.Drawing.Point(149, 109);
         this.removeButton.Name = "removeButton";
         this.removeButton.Size = new System.Drawing.Size(100, 36);
         this.removeButton.TabIndex = 3;
         this.removeButton.Text = "Remove";
         this.removeButton.Click += new System.EventHandler(this.removeButton_Click);
         // 
         // clearButton
         // 
         this.clearButton.Location = new System.Drawing.Point(149, 165);
         this.clearButton.Name = "clearButton";
         this.clearButton.Size = new System.Drawing.Size(100, 36);
         this.clearButton.TabIndex = 4;
         this.clearButton.Text = "Clear";
         this.clearButton.Click += new System.EventHandler(this.clearButton_Click);
         // ListBoxTestForm
         // 
         this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
         this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
         this.ClientSize = new System.Drawing.Size(263, 268);
         this.Controls.Add(this.clearButton);
         this.Controls.Add(this.removeButton);
         this.Controls.Add(this.addButton);
         this.Controls.Add(this.inputTextBox);
         this.Controls.Add(this.displayListBox);
         this.Name = "ListBoxTestForm";
         this.Text = "ListBoxTest";
         this.ResumeLayout(false);
         this.PerformLayout();
      }
      [STAThread]
      static void Main()
      {
    Application.EnableVisualStyles();
    Application.Run(new Form1());
    }
}


Set TopIndex to auto scroll ListBox

using System;
using System.Collections.Generic;
using System.ruponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
public class Form1 : Form
{
    private System.Windows.Forms.GroupBox GroupBox1;
    private System.Windows.Forms.Label Label4;
    private System.Windows.Forms.Label Label1;
    private System.Windows.Forms.PictureBox pic;
    private System.Windows.Forms.TextBox txt;
    private System.Windows.Forms.Button cmd;
    private System.Windows.Forms.Label Label2;
    private System.Windows.Forms.Label Label3;
    private System.Windows.Forms.ListBox eventLogList;
    public Form1() {
        InitializeComponent();
    }
    private void Log(String data)
    {
        eventLogList.Items.Add(data);
        int itemsPerPage = (int)(eventLogList.Height / eventLogList.ItemHeight);
        eventLogList.TopIndex = eventLogList.Items.Count - itemsPerPage;
    }
    private void txt_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
        Log("Key Down: " + e.KeyCode.ToString() + e.KeyValue.ToString());
    }
    private void txt_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
    {
        Log("Key Press: " + e.KeyChar.ToString());
    }
    private void txt_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
    {
        Log("Key Up: " + e.KeyCode.ToString() + e.KeyValue.ToString() + " Text is: " + txt.Text);
    }
    private void txt_TextChanged(object sender, System.EventArgs e)
    {
        Log("Changed: " + " Text is: " + txt.Text);
    }
    private void pic_MouseEnter(object sender, System.EventArgs e)
    {
        Log("Mouse Enter");
    }
    private void pic_MouseHover(object sender, System.EventArgs e)
    {
        Log("Mouse Hover");
    }
    private void pic_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        Log("Mouse Down: X=" + e.X.ToString() + " Y=" + e.Y.ToString() + " Button=" + e.Button.ToString());
    }
    private void pic_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
        Log("Mouse Up: X=" + e.X.ToString() + " Y=" + e.Y.ToString() + " Button=" + e.Button.ToString());
    }
    private void pic_Click(object sender, System.EventArgs e)
    {
        Log("Click");
    }
    private void pic_DoubleClick(object sender, System.EventArgs e)
    {
        Log("Double Click");
    }
    private void pic_MouseLeave(object sender, System.EventArgs e)
    {
        Log("Mouse Leave");
    }
    private void InitializeComponent()
    {
        this.GroupBox1 = new System.Windows.Forms.GroupBox();
        this.Label4 = new System.Windows.Forms.Label();
        this.Label1 = new System.Windows.Forms.Label();
        this.pic = new System.Windows.Forms.PictureBox();
        this.txt = new System.Windows.Forms.TextBox();
        this.cmd = new System.Windows.Forms.Button();
        this.Label2 = new System.Windows.Forms.Label();
        this.Label3 = new System.Windows.Forms.Label();
        this.eventLogList = new System.Windows.Forms.ListBox();
        this.GroupBox1.SuspendLayout();
        ((System.ruponentModel.ISupportInitialize)(this.pic)).BeginInit();
        this.SuspendLayout();
        // 
        // GroupBox1
        // 
        this.GroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                    | System.Windows.Forms.AnchorStyles.Right)));
        this.GroupBox1.Controls.Add(this.Label4);
        this.GroupBox1.Controls.Add(this.Label1);
        this.GroupBox1.Controls.Add(this.pic);
        this.GroupBox1.Controls.Add(this.txt);
        this.GroupBox1.Controls.Add(this.cmd);
        this.GroupBox1.Controls.Add(this.Label2);
        this.GroupBox1.FlatStyle = System.Windows.Forms.FlatStyle.System;
        this.GroupBox1.Location = new System.Drawing.Point(7, 0);
        this.GroupBox1.Name = "GroupBox1";
        this.GroupBox1.Size = new System.Drawing.Size(384, 148);
        this.GroupBox1.TabIndex = 12;
        this.GroupBox1.TabStop = false;
        // 
        // Label4
        // 
        this.Label4.Location = new System.Drawing.Point(92, 108);
        this.Label4.Name = "Label4";
        this.Label4.Size = new System.Drawing.Size(56, 16);
        this.Label4.TabIndex = 5;
        this.Label4.Text = "And here:";
        // 
        // Label1
        // 
        this.Label1.Location = new System.Drawing.Point(6, 24);
        this.Label1.Name = "Label1";
        this.Label1.Size = new System.Drawing.Size(144, 16);
        this.Label1.TabIndex = 2;
        this.Label1.Text = "Test keyboard events here:";
        // 
        // pic
        // 
        this.pic.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
        this.pic.Location = new System.Drawing.Point(156, 48);
        this.pic.Name = "pic";
        this.pic.Size = new System.Drawing.Size(192, 48);
        this.pic.TabIndex = 3;
        this.pic.TabStop = false;
        this.pic.DoubleClick += new System.EventHandler(this.pic_DoubleClick);
        this.pic.Click += new System.EventHandler(this.pic_Click);
        this.pic.MouseHover += new System.EventHandler(this.pic_MouseHover);
        this.pic.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pic_MouseUp);
        this.pic.MouseEnter += new System.EventHandler(this.pic_MouseEnter);
        this.pic.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pic_MouseDown);
        // 
        // txt
        // 
        this.txt.Location = new System.Drawing.Point(156, 20);
        this.txt.Name = "txt";
        this.txt.Size = new System.Drawing.Size(192, 21);
        this.txt.TabIndex = 1;
        this.txt.KeyUp += new System.Windows.Forms.KeyEventHandler(this.txt_KeyUp);
        this.txt.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txt_KeyPress);
        this.txt.TextChanged += new System.EventHandler(this.txt_TextChanged);
        this.txt.KeyDown += new System.Windows.Forms.KeyEventHandler(this.txt_KeyDown);
        // 
        // cmd
        // 
        this.cmd.FlatStyle = System.Windows.Forms.FlatStyle.System;
        this.cmd.Location = new System.Drawing.Point(156, 100);
        this.cmd.Name = "cmd";
        this.cmd.Size = new System.Drawing.Size(88, 28);
        this.cmd.TabIndex = 4;
        this.cmd.Text = "Button1";
        this.cmd.MouseLeave += new System.EventHandler(this.pic_MouseLeave);
        this.cmd.Click += new System.EventHandler(this.pic_Click);
        this.cmd.MouseEnter += new System.EventHandler(this.pic_MouseEnter);
        this.cmd.MouseHover += new System.EventHandler(this.pic_MouseHover);
        this.cmd.MouseUp += new System.Windows.Forms.MouseEventHandler(this.pic_MouseUp);
        this.cmd.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pic_MouseDown);
        // 
        // Label2
        // 
        this.Label2.Location = new System.Drawing.Point(20, 52);
        this.Label2.Name = "Label2";
        this.Label2.Size = new System.Drawing.Size(128, 16);
        this.Label2.TabIndex = 2;
        this.Label2.Text = "Test mouse events here:";
        // 
        // Label3
        // 
        this.Label3.Location = new System.Drawing.Point(23, 100);
        this.Label3.Name = "Label3";
        this.Label3.Size = new System.Drawing.Size(64, 24);
        this.Label3.TabIndex = 11;
        this.Label3.Text = "Label3";
        // 
        // eventLogList
        // 
        this.eventLogList.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.eventLogList.FormattingEnabled = true;
        this.eventLogList.IntegralHeight = false;
        this.eventLogList.Location = new System.Drawing.Point(7, 156);
        this.eventLogList.Name = "eventLogList";
        this.eventLogList.Size = new System.Drawing.Size(384, 212);
        this.eventLogList.TabIndex = 10;
        // 
        // Form1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(399, 374);
        this.Controls.Add(this.GroupBox1);
        this.Controls.Add(this.Label3);
        this.Controls.Add(this.eventLogList);
        this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
        this.Name = "Form1";
        this.Text = "Event Tracker";
        this.GroupBox1.ResumeLayout(false);
        this.GroupBox1.PerformLayout();
        ((System.ruponentModel.ISupportInitialize)(this.pic)).EndInit();
        this.ResumeLayout(false);
    }
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}