如何通过使用用户键入的相关显示文本获取ComboBox的Value Member?

时间:2013-12-24 11:55:30

标签: c# .net vb.net winforms combobox

我有一个绑定到DataSet的ComboBox。 假设..

  cmbGroup.ValueMember = "Col1"
  cmbGroup.DisplayMember = "Col2"

我想在其中键入其中一个Display成员并按Tab键时获取Combobox的value成员。 我有一个标签,当用户更改所选索引时,该标签会获取值成员Col2的文本。 但是,当您在其中输入显示值时,选定的索引不会在组合框中更改,即使您输入的值是其成员,也可以按Tab键。 我也会接受C#中的答案,因为有很多在线转换器可供使用。 ;)

2 个答案:

答案 0 :(得分:2)

将AutoCompleteMode属性设置为AutoCompleteMode.Suggest

comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest 

答案 1 :(得分:-1)

在回答之前,我必须请你下次再使用更好的句子:),我几乎要死了才能得到你想说的话:D

您需要将表格中的所有成员添加到您的组合框中,并且当用户尝试键入某个组合框时,会附加无类型部分。

用于在组合框中添加成员的C#代码:

        string Query = "SELECT ColumnName FROM TableName";
        using(SqlCommand comSQL = connectionDB.CreateCommand())
        {
            comSQL.CommandText = Query;
                using (SqlDataReader drSql = comSQL.ExecuteReader())
                {
                    while (drSQL.Read())
                    {
                        ComboBox.Items.Add(drSQL.GetString(0));
                    }
                }
        }

要附加无类型部分,您必须更改名为AutoCompleteMode的组合框的属性:

ComboBox.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;

<强>更新

要使用我的解决方案,您必须从DataSet取消绑定组合框。