相关疑难解决方法(0)

在Windows 7中DropDownStyle = DropDownList时,ComboBox.SelectedValue与显示的文本不匹配

假设我们在Windows应用程序中有以下代码:

ComboBox comboBox = new ComboBox()
{
    AutoCompleteMode = AutoCompleteMode.SuggestAppend,
    AutoCompleteSource = AutoCompleteSource.ListItems,
    DataSource = new string[] { "", "Ark", "Boat", "Bucket" },
    DropDownStyle = ComboBoxStyle.DropDownList
};
this.Controls.Add(comboBox);

TextBox textBox = new TextBox()
{
    Left = comboBox.Right,
    Top = comboBox.Top,
    ReadOnly = true
};
textBox.DataBindings.Add("Text", comboBox, "SelectedValue");
this.Controls.Add(textBox);
Run Code Online (Sandbox Code Playgroud)

这里没有魔法,只是ComboBox绑定到一个字符串列表.该TextBox显示SelectedValueComboBox.

当我在" ComboBox标签"中输入"Bucket"时,我会遇到意外行为.由于某种原因,ComboBox显示"船"但TextBox显示"桶".我希望他们都能显示"Bucket".

如果我更改DropDownStyleDropDown,它的行为与预期一致,但我不希望用户能够键入他们想要的任何内容.他们应该只能输入列表中的项目.

更有趣的是,在输入"Bucket"并跳出标签后,如果我再次输入"Bucket",它将同时显示"Bucket".如果我进行第三次尝试,它将返回"船",ComboBox而"Bucket"则返回"TextBox".所以看起来它正在骑自行车穿过所有的B.

在我最近从XP升级到Windows 7之前,我没有注意到这一点.我不明白这与此有什么关系,但无论如何我都把它丢掉了.

如果这种行为是正确的,有人能告诉我我应该做些什么来实现我预期的行为吗?

UPDATE 这似乎这因为预计在Windows XP模式与Windows …

.net data-binding combobox windows-7 winforms

12
推荐指数
2
解决办法
1万
查看次数

如何强制用户将建议的条目带入ComboBox?

我希望用户从ComboBox中选择一个值.必须在用户的文本输入中建议条目.

我是否必须使用事件来强制执行System.Windows.Forms.ComboBox包含自己的值DataSource

示例:必须向用户建议条目...如果我写"CO",组合应该建议"CONGO"和"COLOMBIA",但用户只能输入其中一个值.用户不应该引入"COfdfgdfg"或任何随机字符串.

谢谢!

c# user-interface combobox .net-4.0 winforms

3
推荐指数
1
解决办法
4669
查看次数