C# 组合框突出显示文本

C# 组合框突出显示文本,c#,combobox,C#,Combobox,关于ComboBox的行为,我有一个问题,下面是我的ComboBox的属性 Combo.AutoCompleteMode = SuggestAppend; Combo.AutoCompleteSource = ListItems; 奇怪的行为是当我在组合框中键入一些文本时,当然,由于SuggestAppend是在自动完成模式中设置的,所以组合框会自动给出一些提示。如果使用键盘(箭头向下)选择项目,则会发生此错误 但是,当我已经离开组合框时,组合框中的选定项仍然高亮显示 如您所见,插入符号已

关于ComboBox的行为,我有一个问题,下面是我的ComboBox的属性

Combo.AutoCompleteMode = SuggestAppend;
Combo.AutoCompleteSource = ListItems;
奇怪的行为是当我在组合框中键入一些文本时,当然,由于SuggestAppend是在自动完成模式中设置的,所以组合框会自动给出一些提示。如果使用键盘(箭头向下)选择项目,则会发生此错误

但是,当我已经离开组合框时,组合框中的选定项仍然高亮显示

如您所见,插入符号已在“部门”字段中,并且“收款人”所选项目仍然高亮显示

请给我一些建议,我怎样才能避免这种奇怪的行为


提前感谢。

在验证控件后,您可以通过手动设置选择来解决此问题:

private void comboBox1_Validated(object sender, EventArgs e)
{
    if (comboBox1.Text != null)
        comboBox1.Select(comboBox1.Text.Length, 0);
}

您可能希望将其烘焙到从
ComboBox
派生的自定义类中,并在项目中的任何地方使用它。

Wow,我以前从未见过这一点,但您完全正确。复制步骤:1)在“第一个到”组合框中键入一些内容,以获得显示的“自动完成”选项。2) 在不触碰其他任何东西的情况下,使用鼠标点击下一个组合框。看起来问题仍然存在于4.5版本中,因为我正在开发一个会计系统(用户不想使用鼠标在表单中导航)。这对我不起作用:(private void cb_Validated(object sender,EventArgs e){if(isLoadedDetailGrid){if((发件人作为组合框).Text!=null)(发件人作为组合框)。选择((发件人作为组合框).Text.Length,0);}@jersoft嗯,当我测试了一些东西来解决这个问题时,我不确定该说什么。不确定
isLoadedDetailGrid
是什么,以及它在这里做什么thoughtIsLoadedDetailGrid-只是一个标志。