首页 > 解决方案 > 下拉组合框时停止更改文本

问题描述

使用 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”将留在组合框中。

请注意,这里有一个类似的问题,但实际上是不同的。 当列表项以与下拉项相同的文本开头时,如何设置 ComboBox 默认值*不在下拉列表中?

标签: c#winformscombobox

解决方案


我认为这个解决方案应该可以帮助你:

Winforms 组合框错误 - 2 个具有相同值但不同键的项目

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


推荐阅读