我绑定了两列数据。
我改变数量那列数值的时候,我想联动经过计算改变总数那列值。例如:
改变前                           改变后
数量  总数                       数量    总数
 1     10               10    100其实就是数量乘以10直接改变总数那列的值。
10*10=100 就是总数的值。
不知道我描述清楚了没有!请各位前辈指正。DataGridViewTextBoxColumn txtNum = new DataGridViewTextBoxColumn();
        DataGridViewTextBoxColumn txtCount = new DataGridViewTextBoxColumn();        private void Form1_Load(object sender, EventArgs e)
        {
            txtNum.DataPropertyName = "Num";
            txtNum.HeaderText = "数量";
            txtCount.DataPropertyName = "Count";
            txtCount.HeaderText = "总数";            dataGridView1.Columns.AddRange(new DataGridViewColumn[] { txtNum, txtCount });            dataGridView1.DataSource = DataGridBindData();
        }        private DataTable DataGridBindData()
        {
            DataTable dtData = new DataTable();
            dtData.Columns.Add("Num",typeof(int));
            dtData.Columns.Add("Count",typeof(int));
            DataRow drData;
            drData = dtData.NewRow();
            drData[0] = 1;
            drData[1] = 10;
            dtData.Rows.Add(drData);
            drData = dtData.NewRow();
            drData[0] = 2;
            drData[1] = 20;
            dtData.Rows.Add(drData);
            drData = dtData.NewRow();
            drData[0] = 3;
            drData[1] = 30;
            dtData.Rows.Add(drData);
            return dtData;
        }

解决方案 »

  1.   

    哪位前辈知道!是不是应该用DataGrideView的什么事件吧!
      

  2.   

    不是可以定义计算列吗?
    column("count")=column("num")*10
      

  3.   

    思路应该是DataGrideView的KeyPress事件,在这个事件里面可以获取按下的键值(是ASCII码),用Convert.ToInt32()转换成对应的整数。然后在事件中作相应的计算就行了。
      

  4.   

    错误!我解决了!
    在CellValueChanged这个事件里!
    private void dgvPrice_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                try
                {
                    if (e.ColumnIndex == 9)//判断一下是否是定量那一列
                    {
                        float count = Convert.ToInt32(this.dgvPrice.Rows[e.RowIndex].Cells[9].Value) * (float)this.dgvPrice.Rows[e.RowIndex].Cells[6].Value;
                        this.dgvPrice.Rows[e.RowIndex].Cells[10].Value = Math.Round(count,2);
                    }
                }
                catch (Exception ex)
                {
                    
                }
            }