C#从输入和位置乘以2数据网格查看列导致第三列

时间:2018-05-18 08:58:19

标签: c# datagridview

我正在使用POS winforms应用程序,我遇到了麻烦,数据网格视图由用户输入,条形码扫描器填充,然后用户调整数据网格视图中的数量,我想要做的是当用户更改Quantity的值(默认设置为1)时,它会乘以第二列,这是价格并在第三列显示结果

A列(输入的值)x B列= C列的结果

我尝试过使用此代码,但没有运气

            private void dataGridView1_CellValidated(object sender, DataGridViewCellEventArgs e)
            {


                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
            int a =dataGridView1.Rows[i][0].value;
            int b =dataGridView1.Rows[i][1].value;

            int c = a*b;

            c=dataGridView1.Rows[i][2].value;


      }

它给了我错误14无法将带有[]的索引应用于类型为&#39; System.Windows.Forms.DataGridViewRow&#39;的表达式。

2 个答案:

答案 0 :(得分:1)

您需要使用Cells

DataGridViewRow属性

使用:

int a = dataGridView1.Rows[i].Cells[0].Value;
int b = dataGridView1.Rows[i].Cells[1].Value;

int c = a * b;

dataGridView1.Rows[i].Cells[2].Value = c;

请注意,我将最后一行更改为dataGridView1.Rows[i].Cells[2].Value = c;,因为这似乎与您的问题相符...您希望答案存储在单元格中。

答案 1 :(得分:-1)

            decimal s = Convert.ToDecimal(dataGridView_DaginaAdd_SellInovice.CurrentRow.Cells[10].Value);
            decimal s1 = Convert.ToDecimal(dataGridView_DaginaAdd_SellInovice.CurrentRow.Cells[11].Value);
            decimal s13 = s + s1; Convert.ToDecimal(dataGridView_DaginaAdd_SellInovice.CurrentRow.Cells[12].Value = s13);