ListBox Events: SelectedIndexChanged, SelectedValueChanged, DataSourceChanged, DisplayMemberChanged, ValueMemberChanged : ListBox « GUI Windows Forms « C# / CSharp Tutorial





using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;

public class Employee

  public string ID;
  public string Name ;

  public  Employee(string strName, string strID)
  {
     this.ID = strID;
     this.Name = strName;
  }

  public override string ToString()
  {
     return this.ID + " : " + this.Name;
  }


public class Form1 : System.Windows.Forms.Form
{
  private System.Windows.Forms.GroupBox groupBox1;
  private System.Windows.Forms.RadioButton rbAuthors;
  private System.Windows.Forms.RadioButton rbEmployees;
  private System.Windows.Forms.ListBox lb;

  private DataTable dataTable;
    private ArrayList Employees = new ArrayList();

  private System.ComponentModel.Container components = null;

  public Form1()
  {
    InitializeComponent();

    lb.Items.Add("A");
    lb.Items.Add("B");
    lb.Items.Add("C");
    lb.Items.Add("D");
    lb.Items.Add("E");

    lb.SelectedIndex = 0;

    // populate the arraylist for later use.
        Employees.Add(new Employee("A", "1"));
        Employees.Add(new Employee("B", "2")); 
        Employees.Add(new Employee("C", "3"));
        Employees.Add(new Employee("D", "4"));
        Employees.Add(new Employee("E", "5"));
        Employees.Add(new Employee("F", "6"));
        Employees.Add(new Employee("G", "7"));
  }

  protected override void Dispose( bool disposing )
  {
    if( disposing )
    {
      if (components != null) 
      {
        components.Dispose();
      }
    }
    base.Dispose( disposing );
  }

  private void InitializeComponent()
  {
    this.lb = new System.Windows.Forms.ListBox();
    this.groupBox1 = new System.Windows.Forms.GroupBox();
    this.rbEmployees = new System.Windows.Forms.RadioButton();
    this.rbAuthors = new System.Windows.Forms.RadioButton();
    this.groupBox1.SuspendLayout();
    this.SuspendLayout();
    // 
    // lb
    // 
    this.lb.Location = new System.Drawing.Point(16, 8);
    this.lb.Name = "lb";
    this.lb.Size = new System.Drawing.Size(232, 212);
    this.lb.TabIndex = 0;
    this.lb.DisplayMemberChanged += new System.EventHandler(this.lb_DisplayMemberChanged);
    this.lb.ValueMemberChanged += new System.EventHandler(this.lb_ValueMemberChanged);
    this.lb.DataSourceChanged += new System.EventHandler(this.lb_DataSourceChanged);
    this.lb.SelectedValueChanged += new System.EventHandler(this.lb_SelectedValueChanged);
    this.lb.SelectedIndexChanged += new System.EventHandler(this.lb_SelectedIndexChanged);
    // 
    // groupBox1
    // 
    this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                    this.rbEmployees,
                                                    this.rbAuthors});
    this.groupBox1.Location = new System.Drawing.Point(16, 240);
    this.groupBox1.Name = "groupBox1";
    this.groupBox1.TabIndex = 1;
    this.groupBox1.TabStop = false;
    this.groupBox1.Text = "DataSource";
    // 
    // rbEmployees
    // 
    this.rbEmployees.Location = new System.Drawing.Point(24, 56);
    this.rbEmployees.Name = "rbEmployees";
    this.rbEmployees.TabIndex = 1;
    this.rbEmployees.Text = "Employee\'s";
    this.rbEmployees.CheckedChanged += new System.EventHandler(this.rb_CheckedChanged);
    // 
    // rbAuthors
    // 
    this.rbAuthors.Checked = true;
    this.rbAuthors.Location = new System.Drawing.Point(24, 32);
    this.rbAuthors.Name = "rbAuthors";
    this.rbAuthors.TabIndex = 0;
    this.rbAuthors.TabStop = true;
    this.rbAuthors.Text = "Authors";
    this.rbAuthors.CheckedChanged += new System.EventHandler(this.rb_CheckedChanged);
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(264, 389);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                             this.groupBox1,
                                             this.lb});
    this.Name = "Form1";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);
    this.groupBox1.ResumeLayout(false);
    this.ResumeLayout(false);

  }
  [STAThread]
  static void Main() 
  {
    Application.Run(new Form1());
  }

  private void rb_CheckedChanged(object sender, System.EventArgs e)
  {
    lb.DataSource = Employees;
    lb.DisplayMember = "Name";
    lb.ValueMember = "ID";
  }

  private void lb_SelectedIndexChanged(object sender, System.EventArgs e)
  {
    MessageBox.Show(lb.SelectedIndex.ToString()+ "\n" + lb.GetItemText(lb.SelectedItem),"lb_SelectedIndexChanged");    
  }

  private void lb_SelectedValueChanged(object sender, System.EventArgs e)
  {
    MessageBox.Show(lb.GetItemText(lb.SelectedItem),"lb_SelectedValueChanged");    
  }

  private void lb_DataSourceChanged(object sender, System.EventArgs e)
  {
    MessageBox.Show(lb.DataSource.ToString(), "lb_DataSourceChanged");    
  }

  private void lb_DisplayMemberChanged(object sender, System.EventArgs e)
  {
    MessageBox.Show(lb.DisplayMember.ToString(), "lb_DisplayMemberChanged");    
  }

  private void lb_ValueMemberChanged(object sender, System.EventArgs e)
  {
    MessageBox.Show(lb.ValueMember.ToString(), "lb_ValueMemberChanged");    
  }

  private void Form1_Load(object sender, System.EventArgs e)
  {
    this.lb.SelectedValueChanged += new System.EventHandler(this.lb_SelectedValueChanged);
    this.lb.SelectedIndexChanged += new System.EventHandler(this.lb_SelectedIndexChanged);
  }
}










23.27.ListBox
23.27.1.Set the TopIndex property of the ListBox to ensure the most recently added items are visibleSet the TopIndex property of the ListBox to ensure the most recently added items are visible
23.27.2.Add Items to ListBoxAdd Items to ListBox
23.27.3.Add ContextMenu to ListBoxAdd ContextMenu to ListBox
23.27.4.ListBox Items AddListBox Items Add
23.27.5.ListBox Items Add a RangeListBox Items Add a Range
23.27.6.ListBox Selection ModeListBox Selection Mode
23.27.7.Use RadioButton to control ListBox selection modeUse RadioButton to control ListBox selection mode
23.27.8.ListBox Events: SelectedIndexChanged, SelectedValueChanged, DataSourceChanged, DisplayMemberChanged, ValueMemberChanged
23.27.9.Add text in the TextBox to the ListBox
23.27.10.Fills a ListBox with data from Database