簡體   English   中英

組合框C#的TextChanged事件

[英]TextChanged event for combobox C#

基本上在下面的代碼中,我試圖遍歷數組,如果組合框中的當前文本與數組中的任何內容都不匹配,則會拋出錯誤。 但是我無法在事件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.");
            }
        }
    }

如果您在TextChanged中有任何內容,請在事件中檢查屬性窗口

首先,您有錯誤的循環實現 :在您的代碼中您急於觸發消息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被assinged到TextChangedSRcmb_tier1馮訴的評論說。

暫無
暫無

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

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