基本上在下面的代码中我试图循环遍历数组,如果组合框中的当前文本与数组中的任何内容都不匹配,则会抛出错误。但是我无法在事件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.");
}
}
}
答案 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>