2016-08-02 64 views
0

我被困在這裏。
我有一個8列的DataGridView(第7等待用戶輸入,第8個有一些數學)。
這是父窗體如何從多個DataGridViewCell添加值並將它們輸出到TextBox?

Parent Form

當我點擊「Adauga」,這意味着「添加」,總千卡文本應的值更新爲
千卡(列)*(cantitate =量)和高級成衣總計=總價格將其值更新爲pret = Price(列)*(cantitate)
並且這樣做,但僅限於一行。讓我解釋一下:正如你上面看到的,我點擊了第三個(從上到下)按鈕,它返回618,10(價格是10 * 1數量)(千卡是618 * 1數量),但如果我也點擊第一個按鈕,看起來They don't add

值不添加到以前的,我不知道如何做到這一點。 這是代碼:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 
     var senderGrid = (DataGridView)sender; 
     if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0) 
     { 
      var pret = dataGridView1.Rows[e.RowIndex].Cells[3].Value; 
      var kcal = dataGridView1.Rows[e.RowIndex].Cells[4].Value; 
      var qt = dataGridView1.Rows[e.RowIndex].Cells[6].Value; 
      int qty = int.Parse(qt.ToString()); 
      int kca = int.Parse(kcal.ToString()); 
      int pre = int.Parse(pret.ToString()); 
      int kcalTotal = 0, pretTotal = 0; 
      kcalTotal = kcalTotal + (qty * kca); 
      pretTotal = pretTotal + (qty * pre); 
      totalPR.Text = pretTotal.ToString(); 
      totalKC.Text = kcalTotal.ToString(); 
     } 
    } 

回答

0

如果我明白你的問題正確,要總結點擊行的值。所以,你的第一次點擊後,價格文本框應顯示10,下一個23後,如果這就是你的意思你的問題,你只需要添加幾行:

變化

int kcalTotal = 0, pretTotal = 0; 

int kcalTotal = 0, pretTotal = 0; 
int.TryParse(totalKC.Text, out kcalTotal); 
int.TryParse(totalPR.Text, out pretTotal); 
+0

如果我這樣做,我會收到錯誤「輸入字符串的格式不正確。」 –

+0

這是(可能),因爲您的文本框的默認值爲空。您必須使用'try-catch',將文本框的默認值設置爲「0」或使用「int.TryParse」。 我編輯了我的答案,並將其更改爲int.TryParse方法。 – zockDoc

+0

它的工作原理,謝謝。你能告訴我這些代碼行後面的「魔術」嗎?我是C#WinForms的新手,每天學習:) 順便說一句,你使用了TryParse方法,但是你提到的三種方法中哪一種最有效? –

相關問題