组合框 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
中有任何内容,请在事件中检查属性 window
首先,您错误的循环实现:在您的代码中您急于触发消息 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
是否被分配给 SRcmb_tier1
的 TextChanged
作为 von v. 在评论中说。
基本上,在下面的代码中,我试图遍历数组,如果组合框中的当前文本与数组中的任何内容都不匹配,它将引发错误。但是我无法让它在事件 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
中有任何内容,请在事件中检查属性 window首先,您错误的循环实现:在您的代码中您急于触发消息 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
是否被分配给 SRcmb_tier1
的 TextChanged
作为 von v. 在评论中说。