2017-09-13 12 views
0

私にはdatagridDGVがあります。そのgridviewには"File Name"の列があり、選択したファイルの名前がopenfildialogに設定されています。計算を実行した後、私はあなたが私が代わりにDGVに、それらに対応する"File Name"に次の2列目に置くのが好きとちょうど1 gridviewを使うだろうと私は下にコメントアウトしました表示されます第二datagridDGV2に結果を入れていました。データグリッドの2番目の列にデータを追加

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

最後のコードは、その行のすべての行をその最後のファイルの 'info.finalnum'に設定することです。私はあなたがその特定のファイルのためだけに設定したいと思う、すべてではないと思う。 –

+0

あなたはDGVのすべての行をforループのinfo.filenumに設定しています。これは重複して見える値です。 –

+0

どちらも正しい。私もそれを参照してください。私はここで馬鹿げた音を嫌いですが、私はこれを個別化する方法がわかりません。私が持っているものを編集するだけで十分ですか?すべてのコード提案は非常に高く評価されるでしょう。 – Logan

答えて

1

OK、 は、あなただけの値を設定する必要があります。正しい行を取得するには、ループ変数の行インデックスを使用します。

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; 
     } 
    } 
+0

それは私が必要なすべてです。今は愚かなようだ。良い見て! – Logan

関連する問題