|
■No96200 (川崎 さん) に返信 > keyとvalueの例
key というからには、key は重複無しということですかね? (value の重複は気にしない)
> コンボボックスのアイテムも---,AAAA,BBBB,CCCCとあります。 > (3つあるコンボボックスはアイテムは全て同じとお考え下さい) 先頭に --- があることを除けば、 ファイルA の value と同じ内容ということでしょうか。
private SortedDictionary<string, string> contents; private void Form1_Load(object sender, EventArgs e) { contents = LoadFromFile(@"D:\TEMP\ファイルA.txt"); var textBoxes = new[] { textBox1, textBox2, textBox3 }; var comboBoxes = new[] { comboBox1, comboBox2, comboBox3 }; for (int i = 0; i < 3; i++) { var c = comboBoxes[i]; c.DataSource = contents.ToArray(); c.DisplayMember = "Value"; c.ValueMember = "Key"; var t = textBoxes[i];
// Form_Load 時に、Text の初期値で ComboBox の初期選択を設定 if (contents.ContainsKey(t.Text)) { c.SelectedValue = t.Text; } else { c.SelectedIndex = 0; }
/* // テキスト変更時に、ComboBox の選択状態を変えたい場合 t.TextChanged += delegate { if (contents.ContainsKey(t.Text)) { c.SelectedValue = t.Text; } else { c.SelectedIndex = 0; } }; */ } }
private SortedDictionary<string, string> LoadFromFile(string filePath) { Encoding enc = Encoding.GetEncoding("Shift_JIS"); var dic = new Dictionary<string, string> { { "", "---" } }; foreach (string[] keyValue in File.ReadLines(filePath, enc).Select(s => s.Split('='))) { dic.Add(keyValue[0], keyValue[1]); } return new SortedDictionary<string, string>(dic); }
|