下拉组合框时停止更改文本

Stop changing text when combobox is dropped down

使用 WinForms。我有一个带有 DropDownStyle DropDown 的组合框。在项目中我放了一个项目“XA”。当用户在 ComboBox(尚未下拉)中输入“X”然后按下下拉按钮时,“X”会自动替换为“XA”。我怎样才能阻止这种情况发生?我希望用户能够将文本保留为“X”,并且只有在下拉列表中单击“XA”时才将文本更改为“XA”。 要重新创建一个新的 WinForms 应用程序并添加一个组合框,然后添加以下代码

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.DropDownStyle = ComboBoxStyle.DropDown;
            comboBox1.Items.Add("XA");
        }

请注意,如果用户没有按下下拉菜单,则“X”会保留在组合框中。

请注意,这里有一个听起来很相似的问题,但实际上是不同的。 How do I set a ComboBox default *not in the drop down* when a list item begins with the same text as a drop down item?

我认为这个解决方案应该对您有所帮助:

Winforms combobox bug - 2 items with the same value but different key

它将 if (m.Msg == LB_FINDSTRING) 更改为 m.Msg = LB_FINDSTRINGEXACT;,这应该可以防止您描述的行为。