[英]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到TextChanged
的SRcmb_tier1
為馮訴的評論說。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.