获取所选项目或从组合框输入文本的最佳方法

时间:2015-10-13 16:49:09

标签: c# winforms combobox

我有一个组合框,我预先填充了许多可能的选择。但我也想让用户打开选项,手动输入不是其中一个选项的文本。所以我将DropDownStyle设置为DropDown,这是可能的。

我的问题是,编写代码以返回用户选择或手动输入的值的最有效(但也是正确的)方法是什么?

目前我正在使用以下代码。但对于这么简单的任务来说似乎有点冗长。是否有更好(更短)的方法来获得相同的结果?

        string Code1 = comboBox_Code1.GetItemText(comboBox_Code1.SelectedItem);
        if (Code1.Length == 0) Code1 = comboBox_Code1.Text;

3 个答案:

答案 0 :(得分:5)

Siva Gopal在评论中发布了答案。它是迄今为止建议的最短和最简单的解决方案。我测试了它,当用户选择预先填充的值时它可以工作,当用户手动输入值时它也可以工作!

string Code1 = comboBox_Code1.Text;

答案 1 :(得分:0)

comboBox_Code1.SelectedItem == null ? comboBox_Code1.Text : comboBox_Code1.SelectedItem.ToString()

代码经过测试并且有效; - )

答案 2 :(得分:0)

您可以使用SelectedIndex建议结合立即if建议来生成以下内容。如果用户根本没有输入值,我想知道你做了什么。这似乎是一种疏忽。

return (comboBox_Code1.SelectedIndex == -1 
         ? comboBox_Code1.Text 
         : comboBox_Code1.SelectedItem.ToString());