2014-11-06 15 views
-2

我正試圖用appsettings文件填充名稱和值的組合框。一旦從組合框中選擇了一個名稱,我想將該值發送到下面的文本框。我想我感到困惑的部分是如何確定選擇哪個並顯示該值。從應用程序設置填充組合框

我的目標是從組合框中選擇名稱「cmd」,並在下面的文本框中輸入path/to/cmd.exe的值。

 public void Form1_Load(object sender, EventArgs e) 
     { 
      string[] names = ConfigurationManager.AppSettings.AllKeys; 
      NameValueCollection appStgs = ConfigurationManager.AppSettings; 

      for (int i = 0; i < appStgs.Count; i++) 
      { 
       comboBox1.Items.Add(names[i]);        
      } 

     } 

     private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 

      string[] names = ConfigurationManager.AppSettings.AllKeys; 
      NameValueCollection appStgs = ConfigurationManager.AppSettings; 
      for (int i = 0; i < appStgs.Count; i++) 
      { 
       textBox3.Text = appStgs[comboBox1.Text]; 

      } 


     } 
+0

首先,這是的WinForms或WPF項目?其次,部分代碼沒有意義。像這樣檢查'SelectedIndex'的原因是什麼(== 1和== 2)?檢查'SelectedIndex'的唯一硬編碼值應該是-1。 – Dialecticus 2014-11-06 12:10:30

+0

我沒有第一個-1,我原來是有的。 – user2190928 2014-11-06 12:27:13

回答

3

嘗試這樣的事情

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    textBox3.Text = appStgs[comboBox1.Text]; 
} 
+0

所以目前我只限於可以添加多少項目?我怎麼能動態去解決這個問題? 如果我在appsettings有更多的選擇,那麼我已經在代碼中定義了SelectedIndex == – user2190928 2014-11-06 12:33:11

+0

@ user2190928不知道我理解這個問題。我的代碼只是一行,並且'SelectedIndex'甚至沒有被使用。這是要走的路。 – Dialecticus 2014-11-06 13:08:24

+0

我現在明白了。我在想我是否需要If。 – user2190928 2014-11-06 13:21:43