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

コンボボックスは、キーを使用して事前に選択されます

于 2015-04-03T12:11:22.253 に答える