2016-04-27 27 views
0

這是到目前爲止我的代碼...如何將我的文本框的內容「寫入」我的字典?

public partial class Form1 : Form 
     { 

      Dictionary<string, TextBox> DTB = new Dictionary<string, TextBox>(); 
      Dictionary<string, decimal> Numbers = new Dictionary<string, decimal>(); 


      public Form1() 
      { 
       InitializeComponent(); 
      } 

      private void Form1_Load(object sender, EventArgs e) 
      { 

       Numbers.Add("Price 1", 0.01M); 
       Numbers.Add("Price 2", 0.05M); 
       Numbers.Add("Price 3", 0.09M); 
       int sizecount = 0; 
       foreach(KeyValuePair<string, decimal> kvp in Numbers) 
       { 
        DTB.Add(kvp.Key, new TextBox()); 
        DTB[kvp.Key].Text = kvp.Value.ToString(); 
        DTB[kvp.Key].Top =sizecount * 30; 
        this.Controls.Add(DTB[kvp.Key]); 
        sizecount++; 
       } 

      } 

      private void btnWriteBackToNumbers_Click(object sender, EventArgs e) 
      { 

      } 
     } 

我的窗體的圖像,我要的是點擊按鈕時改變這裏的價值觀,讓他們「寫」回數字字典。

Sample Form

我開始用在文本框中的名稱儲存的字典鍵,然後以此來確定「其中」把值中的數字詞典,但這是長篇大論,覺得不對勁,有必須是一個更簡單的方法?

我需要的代碼把這個方法...

private void btnWriteBackToNumbers_Click(object sender, EventArgs e) 
     { 



     } 

回答

1

我相信這會工作。當你將值複製到文本框時,我幾乎可以逆轉你正在做的事情。

foreach(KeyValuePair<string, TextBox> textbox in DTB) 
{ 
    Numbers[textbox.Key] = Convert.ToDecimal(textbox.Value.Text); 
} 
+0

感謝您的回覆,是的,但我怎麼知道哪個文本框已經改變? – user3755946

+0

這並不重要,如果文本框沒有改變,kvp和DTB中的數據將是相同的。 –

+0

我沒有得到這個,如果我改變了文本框上的值,我希望它回寫到Numbers dictonary,所以我需要將代碼放在private void btnWriteBackToNumbers_Click(object sender,EventArgs e) – user3755946

相關問題