Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to prevent/cancel a combobox's value change in c#?

I have a combobox at the top of a form that loads editable data into fields below. If the user has made changes, but not saved, and tries to select a different option from the combobox, I want to warn them and give them a chance to cancel or save.

I am in need of a "BeforeValueChange" event with a cancelable event argument.

Any advice on how to accomplish?


1 Answers

Save the ComboBox's SelectedIndex when to box if first entered, and then restore it's value when you need to cancel the change.

cbx_Example.Enter += cbx_Example_Enter;
cbx_Example.SelectionChangeCommitted += cbx_Example_SelectionChangeCommitted;

...

private int prevExampleIndex = 0;
private void cbx_Example_Enter(object sender, EventArgs e)
{
    prevExampleIndex = cbx_Example.SelectedIndex;
}

private void cbx_Example_SelectionChangeCommitted(object sender, EventArgs e)
{
    // some custom flag to determine Edit mode
    if (mode == FormModes.EDIT) 
    {
        cbx_Example.SelectedIndex = prevExampleIndex;
    }
}
like image 116
Denis Biondic Avatar answered Sep 13 '25 17:09

Denis Biondic