Windows Forms App - How does CheckedListBox differ from ListBox?

← PrevNext →

While both CheckedListBox and ListBox are used to display a list of items, they have key differences in functionality.

The Key Differences

Feature ListBox CheckedListBox
Selection Allows single or multiple selection of items Supports Checkboxes for each item
Check Functionality No built-in checkbox functionality Items can be checked or unchecked independently
Usage Used for displaying and selecting items Used when multiple selections need explicit confirmation
Retrieving Selection listBox1.SelectedItems retrieves selected items checkedListBox1.CheckedItems retrieves checked items
On Click Behaviour Only one click to select an option (item) Default behaviour requires two clicks (first on focus and second on selection). But CheckedOnClick = true enables single click checking.
Multi-column Support No built-in support Supports multiple columns via MultiColumn property

In essence, CheckedListBox is an extension of ListBox with additional checkbox functionality, making it ideal for scenarios where users need to select multiple items with clear checkmarks.

When Should you Use Each?

✔️ You should use a ListBox when your application requires straightforward item selection without the need for an explicit "checked" confirmation, such as choosing one or more items from a list.

✔️ Use CheckedListBox when you need the user to make deliberate multiple choices with a clear, permanent toggle state, such as selecting options in a settings panel, filtering items or confirming tasks in a to-do list.

What is the difference between ListBox and CheckedListBox?

One-line interview answer:

ListBox is for selecting items, whereas CheckedListBox is for selecting items using explicit checkboxes and retrieving their checked state.

Other Important Differences

There are a few other useful properties and methods worth knowing when working with ListBox and CheckedListBox.

Listbox

The SelectionMode property determines whether the user can select one or multiple items:

listBox1.SelectionMode = SelectionMode.MultiSimple;

You can retrieve selected items using:

listBox1.SelectedItem
listBox1.SelectedItems
listBox1.SelectedIndex

CheckedListBox

A CheckedListBox provides additional members for working with checked items:

checkedListBox1.CheckedItems
checkedListBox1.CheckedIndices

To get an item's check state:

CheckState state = checkedListBox1.GetItemCheckState(0);

The ItemCheck event can be used when you need to respond when an item's check state changes.

← PreviousNext →