The way I did it on a combobox was to inherit from it, add a readonly property and in SelectedIndexChanged, if Readonly = True, set the SelectedIndex back to the OldIndex value.