组合框C#的TextChanged事件

时间:2015-02-11 10:41:32

标签: c# combobox

基本上在下面的代码中我试图循环遍历数组,如果组合框中的当前文本与数组中的任何内容都不匹配,则会抛出错误。但是我无法在事件TextChanged事件中触发它。

非常感谢任何帮助

string[] SRtier1 = { "Option1", "Option2", "Option3", "Option4", "Option5" };        

private void SRcmb_tier1_TextChanged(object sender, EventArgs e)
    {
        //Loop SRtier1 Array to ComboBox
        for (int i = 0; i < SRtier1.Length; i++)
        {
            if (SRcmb_tier1.Text != SRtier1[i])
            {
                MessageBox.Show("Please select one of the options provided.");
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

如果您在TextChanged

中有任何内容,请检查事件中的属性窗口

答案 1 :(得分:1)

首先,你有错误的循环实现:在你的代码中你急于发送消息SRtier1.Length次,你想要的可能是检查输入并激活消息一次:

private void SRcmb_tier1_TextChanged(object sender, EventArgs e)
{
    Boolean found = false;

    for (int i = 0; i < SRtier1.Length; i++)
    {
        if (SRcmb_tier1.Text == SRtier1[i])
        {
            found = true;
            break;
        }
    }

    if (!found)
       MessageBox.Show("Please select one of the options provided.");
}

更好的解决方案是使用 Linq

   private void SRcmb_tier1_TextChanged(object sender, EventArgs e) {
     if (!SRtier1.Any(item => item == SRcmb_tier1.Text)) 
       MessageBox.Show("Please select one of the options provided.");
   }

最后,检查SRcmb_tier1_TextChanged是否与TextChanged的{​​{1}}同为 von v。 在评论中说明。< / p>