3

我有一个绑定到这样的字典的组合框:

Dictionary<int, string> comboboxValues = new Dictionary<int, string>();
comboboxValues.Add(30000, "30 seconds");
comboboxValues.Add(45000, "45 seconds");
comboboxValues.Add(60000, "1 minute");
comboBox1.DataSource = new BindingSource(comboboxValues , null);
comboBox1.DisplayMember = "Value";
comboBox1.ValueMember = "Key";

我从 SelectedItem 中获取密钥,如下所示:

int selection = ((KeyValuePair<int, string>)comboBox1.SelectedItem).Key;

因此,如果我的用户选择“45 秒”选项,我会返回 45000 并将该值保存到 XML 文件中。加载我的应用程序时,我需要读取该值,然后自动设置组合框以匹配。当我只有 45000 的密钥时可以这样做吗?还是我需要将值(“45 秒”)保存到文件而不是密钥?

4

2 回答 2

6

是的,您可以只使用 45000

comboBox1.SelectedItem = comboboxValues[45000];

如果您知道索引,那么您可以使用

comboBox1.SelectedIndex = i;

i 从零开始,-1 表示没有选择。

或者设置 SelectedItem

comboBox1.SelectedItem = new KeyValuePair<int, string>(45000, "45 seconds");

private void Form1_Load(object sender, EventArgs e)
{
    Dictionary<int, string> comboboxValues = new Dictionary<int, string>();
    comboboxValues.Add(30000, "30 seconds");
    comboboxValues.Add(45000, "45 seconds");
    comboboxValues.Add(60000, "1 minute");
    comboBox1.DataSource = new BindingSource(comboboxValues, null);
    comboBox1.DisplayMember = "Value";
    comboBox1.ValueMember = "Key";
    comboBox1.SelectedItem = comboboxValues[45000];
}
于 2012-09-26T18:57:43.063 回答
2

只需使用

comboBox1.SelectedValue=45000

并且您的组合框将通过使用 Key 预先选择

于 2015-04-03T12:11:22.253 回答