Member 13510001 Ответов: 1

Как умножить значения столбцов datagridview на значение текстового поля?


Код работает нормально, если я генерирую несколько строк, а затем вводю значение текстового поля ............. но сначала, если я введу значение текстового поля, а затем сгенерирую строки. Он не выполняет никаких действий, и общее значение отображается в totPenTxt.Текст нулевой.

Что я уже пробовал:

private void penTxt_TextChanged(object sender, EventArgs e)
       {
           int sum = 0;
           for (int i = 0; i < metroGrid1.Rows.Count - 1; ++i)
           {
               sum += Convert.ToInt32(metroGrid1.Rows[i].Cells["quantity"].Value);
           }
           if (penTxt.Text == string.Empty && totPenTxt.Text != string.Empty)
           {
               totPenTxt.Text = Convert.ToInt32(0).ToString();
           }
           else
           {
               int value = Convert.ToInt32(penTxt.Text);

                   int result = value * sum;
                   totPenTxt.Text = result.ToString();

           }

1 Ответов

Рейтинг:
1

Richard MacCutchan

Если в GridView нет строк, то сумма будет равна нулю. Вам нужно добавить правильную проверку количества строк и предпринять другое действие, если их нет.

Также...

        totPenTxt.Text = Convert.ToInt32(0).ToString();
// why not just:
        totPenTxt.Text = "0";


Member 13510001

Уважаемый спасибо Вам за помощь не могли бы Вы уточнить, что я должен делать в этом сценарии, если пользователь сначала вводит значение текстового поля, а затем генерирует строк столько, сколько он хочет. как пользователь генерирует строку totPenTxt.text изменяет ее значение в соответствии с количеством строк.

Richard MacCutchan

Вам просто нужно проверить, есть ли какие-либо строки в начале строки. penTxt_TextChanged метод. Если количество строк равно нулю, то немедленно вернитесь из метода.