我有一个组合框,我预先填充了许多可能的选择。但我也想让用户打开选项,手动输入不是其中一个选项的文本。所以我将DropDownStyle设置为DropDown,这是可能的。
我的问题是,编写代码以返回用户选择或手动输入的值的最有效(但也是正确的)方法是什么?
目前我正在使用以下代码。但对于这么简单的任务来说似乎有点冗长。是否有更好(更短)的方法来获得相同的结果?
string Code1 = comboBox_Code1.GetItemText(comboBox_Code1.SelectedItem);
if (Code1.Length == 0) Code1 = comboBox_Code1.Text;
答案 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());