在dataGridView中搜索多个列

时间:2017-03-28 11:17:12

标签: c# .net datagridview

我有这个代码用于在datagridview中搜索特定的列名或列号:

        string str = kartSearchTxt.Text;
        string value = "";
        for (int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            value = dataGridView1.Rows[i].Cells[3].Value.ToString();
                if (value.Contains(str) == false)
                {
                    dataGridView1.Rows.RemoveAt(i);
                    i--;
                }  
        }
    }

我尝试了不同的解决方案,例如使用&#34; 2 for循环&#34;用于搜索列,但它没有工作。

如何搜索多列?

1 个答案:

答案 0 :(得分:0)

像这样使用循环

for (int i = dataGridView1.Rows.Count - 1; i >= 0; i--)
{
    foreach (DataGridViewColumn column in dataGridView1.Columns)
    {
        if (!column.Visible || column.DisplayIndex < 0)
            continue;
        value = dataGridView1.Rows[i].Cells[column.DisplayIndex].Value.ToString();
        if (value.Contains(str) == false)
        {
            dataGridView1.Rows.RemoveAt(i);
        }
    }
}

因为当您从网格中删除行时,dataGridView1.Rows会获取新值