我有datagrid
DGV
。 gridview
列的"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;
}
}
}
答案 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;
}
}