c# - 在 C# Combobox 中设置选定项

标签 c# winforms combobox

我到处查了这个问题,但找不到答案。我有一个枚举值的组合框,它应该从类属性中获取其初始值。请记住,它不是数据绑定(bind)到属性。当我使用当前选定的项目设置类属性时,没有问题,但是当我尝试设置初始值时,组合框只是空白。

我已经调试过了,似乎 SelectedItem 设置正确,但它并没有直观地更新当前项目。这是我用于填充组合框的代码:

foreach(Gender gender in Enum.GetValues(typeof(Gender)))
{
    genderComboBox.Items.Add(gender);
}

我用这个设置它:

genderComboBox.SelectedItem = person.Gender;

我之前也试过这样做:

genderComboBox.DataSource = Enum.GetValues(typeof(Gender));

没有任何作用。我还尝试将枚举属性转换为 int 并使用它来设置 SelectedIndex。如果我添加断点并检查值,一切似乎都应该有效,但事实并非如此。我真的很困惑。

最佳答案

我好像明白了。

SelectedItem 的默认值为 Gender.Male,与 person.Gender 的默认值相同。由于 SelectedItem 已经等于 Gender.Male,因此它没有直观地更新控件并将其留空。当我将SelectedItem设置为null,然后设置为初始值时,它突然起作用了。

关于c# - 在 C# Combobox 中设置选定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22427205/

相关文章:

c# - DateTime.TryParse 无法解析 DateTime.MinValue

c# - 使用 SortableBindingList<T> - DataGridView 不会自动对更改进行排序

c# - 如何在DataGridView中搜索没有数据库的文件

mysql - 如何检查字段值是否与组合框值相同?

c# - 即使我没有同时运行多个东西,也会在长时间的过程发生时卡住表格

c# - 为什么 Fiddler 会修复我与 WCF 服务器的连接问题?

c# - SaveFileDialog 设置默认路径和文件类型?

c# - 我如何在 wpf 中为组合框的选定项目编写项目模板

c# - 无法从 ComboBox 获取值

c# - 将 Windows 窗体工具提示锚定到鼠标