Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在dataGridView中搜索多个列_C#_.net_Datagridview - Fatal编程技术网

C# 在dataGridView中搜索多个列

C# 在dataGridView中搜索多个列,c#,.net,datagridview,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();

我有以下代码用于在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--;
                }  
        }
    }
string str=kartSearchTxt.Text;
字符串值=”;
对于(int i=0;i
我也尝试过不同的解决方案,比如使用“2 for循环”来搜索列,但没有成功

如何在多个列中搜索?

像这样使用for循环

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);
        }
    }
}
for(int i=dataGridView1.Rows.Count-1;i>=0;i--)
{
foreach(dataGridView1.Columns中的DataGridViewColumn列)
{
如果(!column.Visible | | column.DisplayIndex<0)
继续;
value=dataGridView1.Rows[i]。单元格[column.DisplayIndex]。value.ToString();
if(value.Contains(str)==false)
{
dataGridView1.Rows.RemoveAt(i);
}
}
}
因为当您从网格中删除行时,
dataGridView1.Rows
接受新值

用于如下循环

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);
        }
    }
}
for(int i=dataGridView1.Rows.Count-1;i>=0;i--)
{
foreach(dataGridView1.Columns中的DataGridViewColumn列)
{
如果(!column.Visible | | column.DisplayIndex<0)
继续;
value=dataGridView1.Rows[i]。单元格[column.DisplayIndex]。value.ToString();
if(value.Contains(str)==false)
{
dataGridView1.Rows.RemoveAt(i);
}
}
}

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

2个循环就可以了。用2个循环粘贴你的代码,我将其用于包含搜索的列:for(int i=0;i