ListBox. This stores several text items. It can interact with other controls. In the example program it interacts with 2 Buttons—through the Button Click event handler.
Get started. Please create a new Windows Forms C# project, and then open the Toolbox and double-click on the ListBox item. This will insert a new ListBox into your Windows Forms designer.
Example code. Here we create a new List at the class level—this will be used as a data source. In the Form1 constructor, we add 3 elements to the List.
Info At the final point in the constructor, we assign the DataSource from the listBox1 to the new List.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication11
{
public partial class Form1 : Form
{
List<string> _items = new List<string>(); // <-- Add this
public Form1()
{
InitializeComponent();
_items.Add("One"); // <-- Add these
_items.Add("Two");
_items.Add("Three");
listBox1.DataSource = _items;
}
}
}
Add event handlers. Here we double-click on each button in the Designer. You will be taken to the C# code view and a new event handler will have been inserted.
Info In these event handlers (button1_Click and button2_Click), we manipulate the List and refresh the ListBox.
private void button1_Click(object sender, EventArgs e)
{
// The Add button was clicked.
_items.Add("New item " + DateTime.Now.Second); // <-- Any string you want// Change the DataSource.
listBox1.DataSource = null;
listBox1.DataSource = _items;
}
private void button2_Click(object sender, EventArgs e)
{
// The Remove button was clicked.
int selectedIndex = listBox1.SelectedIndex;
try
{
// Remove the item in the List.
_items.RemoveAt(selectedIndex);
}
catch
{
}
listBox1.DataSource = null;
listBox1.DataSource = _items;
}
Form. We see the code for the Form.cs file, which acts on the ListBox and 2 Buttons in the Designer. We add and remove items to the ListBox with the buttons.
Info We can add items to the ListBox by clicking the top button, and then remove the selected item by clicking the bottom button.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApplication11
{
public partial class Form1 : Form
{
List<string> _items = new List<string>();
public Form1()
{
InitializeComponent();
_items.Add("One");
_items.Add("Two");
_items.Add("Three");
listBox1.DataSource = _items;
}
private void button1_Click(object sender, EventArgs e)
{
// The Add button was clicked.
_items.Add("New item " + DateTime.Now.Second);
// Change the DataSource.
listBox1.DataSource = null;
listBox1.DataSource = _items;
}
private void button2_Click(object sender, EventArgs e)
{
// The Remove button was clicked.
int selectedIndex = listBox1.SelectedIndex;
try
{
// Remove the item in the List.
_items.RemoveAt(selectedIndex);
}
catch
{
}
listBox1.DataSource = null;
listBox1.DataSource = _items;
}
}
}
Enabled. You can change the Enabled state of your Add and Remove buttons by setting the Enabled property. This example demonstrates setting Enabled.
Detail Button1 is the Add button, so it always sets the Enabled property of Add to true.
Detail Button2 is the Remove button, so it is disabled when there are no items in the ListBox.
private void button1_Click(object sender, EventArgs e)
{
// The Add button was clicked.// ...
button2.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
// The Remove button was clicked.// ....
if (listBox1.Items.Count == 0)
{
button2.Enabled = false;
}
}
Items. In Visual Studio, it is possible to type the items you want to be present in the ListBox using the designer. You can do this by modifying the Items property.
Summary. We added a ListBox and had other controls interact with it. We should bind its DataSource. Adding items manually is harder to do correctly and is more complex.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on May 1, 2024 (simplify).