c#在ds.readxml之后到datagridview如何触发CellEndEdit

时间:2017-02-11 20:48:39

标签: c# datagridview


有datagridview列在哪里 lenght,width,qty和readonly列M2(其中用CellEndEdit事件计算LxWxQ)

 private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            int m2lenght = Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value);
            int m2width = Convert.ToInt32(dataGridView1.CurrentRow.Cells[1].Value);
            int m2qty = Convert.ToInt32(dataGridView1.CurrentRow.Cells[2].Value);
            float m2row = m2lenght * m2width * m2qty / 1000000F;
            dataGridView1.CurrentRow.Cells[8].Value = m2row;
        }


可以将数据集中的xml文件(带有长度,宽度,数量)导入到datagridview中 导入工作正常。

private void XmlLoad(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
            ds.ReadXml("D:\\test.xml");

            foreach (DataRow item in ds.Tables["Data"].Rows)
            {
                int n = dataGridView1.Rows.Add();
                dataGridView1.Rows[n].Cells[0].Value = item[0];
                dataGridView1.Rows[n].Cells[1].Value = item[1];
                dataGridView1.Rows[n].Cells[2].Value = item[2];
            }
         }

但是在进口后,柱子M2没有结果。 我怎样才能在每一行上触发CellEndEdit事件?

我已经尝试了

dataGridView1.Upate();
dataGridView1.Refresh();

但没有任何改变。

谢谢

1 个答案:

答案 0 :(得分:0)

您可以设置CurrentCell,然后拨打dataGridView1_CellEndEdit

private void XmlLoad(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
            ds.ReadXml("D:\\test.xml");

            foreach (DataRow item in ds.Tables["Data"].Rows)
            {
                int n = dataGridView1.Rows.Add();     
                dataGridView1.Rows[n].Cells[0].Value = item[0];    
                dataGridView1.Rows[n].Cells[1].Value = item[1]; 
                dataGridView1.Rows[n].Cells[2].Value = item[2];
                dateGridView1.CurrentCell = this.dateGridView1.Rows[n].Cells[0];
                dataGridView1_CellEndEdit(this, null);
            }
         }