簡體   English   中英

如果選擇了其他comboBox,如何禁用comboBox(C#)

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

如果其他組合框中包含某種文本或值,是否仍有禁用該組合框的功能。 我嘗試了幾件事,但似乎無法使其正常工作。

以下是示例

組合框

使用combobox1的SelectedValueChanged事件檢查選定的值。 基於此禁用或啟用combobox2。

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

您可以處理兩個組合框的SelectedValueChanged事件,如果任何一個組合具有所需的值,請禁用另一個

與此類似,請僅設置所需的任何屬性,或不清除它或其他任何屬性。 (測試組合未綁定數據)

    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;
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM