首页 > 解决方案 > 仅计算可见行的总列 c# winform

问题描述

我有一些包含三列名称付款和其他付款的行。我写这一行来计算两列付款和其他付款的总和

  int sumDoit = 0;
        for (int i = 0; i < dataGridView1.Rows.Count; ++i)
        {
            int tmp = 0;
            int.TryParse(dataGridView1.Rows[i].Cells[11].Value.ToString(), out tmp);
            sumDoit += tmp;
        }
        txtPayement.Text = sumDoit.ToString("");

        int sumRecu = 0;
        for (int i = 0; i < dataGridView1.Rows.Count; ++i)
        {
            int tmp = 0;
            int.TryParse(dataGridView1.Rows[i].Cells[12].Value.ToString(), out tmp);
            sumRecu += tmp;
        }
        txtOtherpayement.Text = sumRecu.ToString("");

这条线的问题是,当我隐藏一些行时,它应该计算可见行的总数,而不是所有行。知道如何调整这条线来实现我的目标吗?谢谢你

标签: c#datagridview

解决方案


尝试这个。

int sumDoit = 0;
foreach (DataGridViewRow rowItem in dataGridView1.Rows)
{ 
    if(rowItem.Visible){
       int tmp = 0;
       int.TryParse(rowItem.Cells[11].Value, out tmp);
       sumDoit += tmp;
    }
 }

推荐阅读