//In ctor { this.lb = new System.Windows.Forms.ListBox(); lb.Items.Add(new ListItem(1, "Test")); lb.SelectedIndexChanged += new EventHandler(lb_SelectedIndexChanged); this.Controls.Add(lb); } void lb_SelectedIndexChanged(object sender, EventArgs e) { ListItem item = (ListItem) lb.SelectedItem; MessageBox.Show(item.Value.ToString()); } public class ListItem { public readonly object Value; public readonly string Display; public ListItem(object value, string display) { this.Value = value; this.Display = display; } public override string ToString() { return Display; } }