简体   繁体   中英

How to Disable comboBox if other comboBox is selected (C#)

Is there anyway to disable a combobox if a different combobox has some sort of text or value in it. I have tried a couple things and can't seem to get it to work.

Below is Example

组合框

Use the SelectedValueChanged event of combobox1 to check for the selected values. Disable or enable combobox2 based upon that.

private void combobox1_SelectedValueChanged(object sender, Eventargs e)
{
    if (combobox1.SelectedValue == myDisableValue)
        combobox2.Enabled = false;
    else
        combobox2.Enabled = true;
 }

您可以处理两个组合框的SelectedValueChanged事件,如果任何一个组合具有所需的值,请禁用另一个

Something similar to this, only set whatever property you want, or don't clear it, or whatever. (test combos were not data bound)

    public partial class Form1 : Form
{
    bool fireEvents = true;
    public Form1()
    {
        InitializeComponent();
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (fireEvents) doCheck(sender, e);
    }

    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (fireEvents) doCheck(sender, e);
    }

    private void doCheck(object sender, EventArgs e)
    {
        fireEvents = false; // because we don't have a way to cancel event bubbling
        if (sender == comboBox1)
        {
            comboBox2.SelectedIndex = -1;
        }
        else if (sender == comboBox2)
        {
            comboBox1.SelectedIndex = -1;
        }
        fireEvents = true;
    }

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM