for (int i = 0; i < dataGridView1.Columns.Count; i++)
            {
                if (dataGridView1[i, 0].Value.ToString() == "0.0000000000")
                {   
                    dataGridView1.Columns.Remove(dataGridView1.Columns[i]);
                }
            }
这句话有个问题,就是在删除列时,列的index是动态的
问问大家有什么办法处理?

解决方案 »

  1.   

    for (int i = dataGridView1.Columns.Count-1 ; i >=0; i--)
    {
        if (dataGridView1[i, 0].Value.ToString() == "0.0000000000")
        {
            dataGridView1.Columns.Remove(dataGridView1.Columns[i]);
        }
    }
      

  2.   

    dataGridView1.Columns.Remove(dataGridView1.Columns[i]);
    后面加i--;把index返回 因该也可以
      

  3.   


    那就在填充数据之前先判断某列的值是否为DBNull.Value||"" ,为空就剔除相应的行或者列
      

  4.   

       
    for (int i = dataGridView1.Columns.Count-1 ; i >=0; i--)
    {
        if (dataGridView1[i, 0].Value.ToString() == "0.0000000000")
        {
            dataGridView1.Columns.Remove(dataGridView1.SelectedCells[i].Value)
        }
    }