将数据添加到Datagrid的第二列

时间:2017-09-13 14:32:13

标签: c# datagridview

我有datagrid DGVgridview列的"File Name"列由openfildialog中您选择的文件名填充。执行计算后,我将结果放在第二个datagrid DGV2中,您会看到我已经在下面注释掉了,因为我想将它们放在相应的第二列旁边"File Name"上的DGV,只需使用一个gridview。然而,这只是进行最后一次计算并在每一行上重复它而不是单独的计算(因为它们都应该是差异)

所以看起来应该是这样的:

File1 4.5 
File2 3.5

相反它只是做

File1  3.5
File2  3.5

我知道我是在造成它,我在这里做错了我只是不确定如何解决它。

    private void btnCalculate_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in DGV_Hidden.Rows)
        {
            FileInfo info = new FileInfo();
            {
                var lines = File.ReadAllLines(row.Cells["colfilelocation"].Value.ToString());
                var data = lines.Where(line => (!line.Contains(Data_Start_Point_Identifier) && !line.Contains(FSD__Line_Identifier) && !line.EndsWith("0.00"))).ToList();

                if (data.Count > 1)
                {
                    var line = data[0];
                    var firstsplit = data[1].Split(splitter);
                    info.startvalue = Convert.ToDouble(firstsplit[0]);
                    var secondsplit = data[data.Count - 1].Split(splitter);
                    info.endvalue = Convert.ToDouble(secondsplit[0]);
                }
                info.finalnum = info.startvalue - info.endvalue;
            }
            //DGV2.Rows.Add(info.finalnum);
            for (int i = 0; i < DGV.Rows.Count; i++)
            {
                DGV.Rows[i].Cells["colfiledata"].Value = info.finalnum;
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

确定, 如你所说,你有相似的数据/行数,你只需要在循环隐藏的网格时设置值。使用循环变量的行索引来获取正确的行。

 private void btnCalculate_Click(object sender, EventArgs e)
    {
        foreach (DataGridViewRow row in DGV_Hidden.Rows)
        {
            FileInfo info = new FileInfo();
            {
                var lines = File.ReadAllLines(row.Cells["colfilelocation"].Value.ToString());
                var data = lines.Where(line => (!line.Contains(Data_Start_Point_Identifier) && !line.Contains(FSD__Line_Identifier) && !line.EndsWith("0.00"))).ToList();

                if (data.Count > 1)
                {
                    var line = data[0];
                    var firstsplit = data[1].Split(splitter);
                    info.startvalue = Convert.ToDouble(firstsplit[0]);
                    var secondsplit = data[data.Count - 1].Split(splitter);
                    info.endvalue = Convert.ToDouble(secondsplit[0]);
                }
                info.finalnum = info.startvalue - info.endvalue;
            }
         //set your value here
            DGV.Rows[row.Index].Cells["colfiledata"].Value = info.finalnum;
        }
    }