在C#中获取datagridview单元格索引

时间:2017-06-29 15:29:20

标签: c# datagridview

如何在比较值后得到Cell索引,例如我有这个

 for (int i = 0; i < dataGridView1.Rows.Count; i++)
 {
     if (dataGridView1.Rows[i].Cells[value].Value.ToString() == radTextBox1.Text)
     {
     //If the value matches how to get the row index of that
     }              
 }

3 个答案:

答案 0 :(得分:2)

这可能会起到作用:

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    if (dataGridView1.Rows[i].Cells[0].Value.ToString() == radTextBox1.Text)
    {
        dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[0];
    }
}

答案 1 :(得分:0)

你找到了你正在寻找的那条行。 这是我代码中的变量。

var requiredRowIndex = -1;
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
     {
         if (dataGridView1.Rows[i].Cells[value].Value.ToString() == radTextBox1.Text)
         {
             requiredRowIndex = i; 
             break;
         }              
     }

if (requiredRowIndex != -1)
{
    // It was found.
}
else 
{
    // It was not found.
}

你没有告诉我们value是什么?这是你正在寻找的Cell的实际指数。

答案 2 :(得分:0)

如果您想在任何单元格中找到该值,则需要使用嵌套循环。

        dataGridView1.ClearSelection();
        for (int i = 0; i < dataGridView1.Rows.Count; i++)
        {
            for (int c = 0; c < dataGridView1.Columns.Count; c++)
            {
                if (dataGridView1.Rows[i].Cells[c].Value.ToString() == radtextBox1.Text)
                {
                    dataGridView1.Rows[i].Selected = true;

                }
            }
        }

这会在检查值的所有列时移动每一行,并且会在单元格具有该值的任何行中进行处理。请注意,此代码区分大小写,因此&#34; City&#34; &LT;&GT; &#34;城市&#34;但是可以根据需要使用.ToUpper或.ToLower轻松修复。

要添加的另一件事,此代码也基于将AllowUserToAddRows设置为false的DGV。如果您需要编辑行,则需要从行循环中的计数中选择-1,或者检查以确保.IsNewRow的当前行为false。