代码:
private void comBoxModelCus_TextUpdate(object sender, EventArgs e)
{
List<string> listNew = new List<string>();
listNew.Clear();
comBoxModelCus.Items.Clear();
string MODEL = comBoxModelCus.Text.Trim().ToUpper();
foreach (string item in g_initialQuery)
{
if (item.Contains(MODEL))
{
listNew.Add(item);
}
}
comBoxModelCus.SelectionStart = comBoxModelCus.Text.Length;
comBoxModelCus.Items.AddRange(listNew.ToArray());
Cursor = Cursors.Default;
comBoxModelCus.DroppedDown = true;
}
此时故意胡乱输入进行匹配不让其匹配到结果,然后点击窗体空白处就会出现异常!
正常输入匹配的话是可以的,但是不知为何这种情况之下点击空白处就会报此异常,而且也不提示是具体在哪出现此异常,不知哪位打算帮忙提供解决方案、、、(同样自己写了一个测试程式也是一样的结果。
没有哦,只有textUpdate事件,而且我写了一个小程式测试还是一样的结果,你可以自己测试一下,只给一个button1与comboBox1,button1初始化g_initialQuery集合,给comboBox添加同样的事件,会有一样的异常···
没有,只有在update事件里有改变,集合g_initialQuery已经初始化好了,可以正常匹配获取Item。如图
但在没有匹配出item时如果鼠标点击窗体的话就会出现异常。
在异常窗体底部,点“异常信息复制到剪贴板”,然后贴出来
追问未处理 System.ArgumentOutOfRangeException
Message=InvalidArgument='0' 不是 'index' 的有效值。
参数名称: index
Source=System.Windows.Forms
ParamName=index
StackTrace:
於 System.Windows.Forms.ComboBox.Ob、、、
贴的不全,你把关键部分给省略了啊,主要信息都在stacktrace里面呢
追问已经解决了,thank you!
...InvalidArgument='0' 不是 'index' 的有效值. 参数名称: index...
若匹配结果空则添加一个空白项,这样就能阻止报错,猜想是输入结果后控件默认设置text是第一个,但此时没有项,故index无效