2017-03-28 70 views
1

我有一個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--; 
       } 
     } 
    } 

我已經試過像有「2 for循環」不同勢的解決方案用於搜索通過列也,但它沒有工作。

我該如何搜索多列? 由於事先

+0

2個循環應該做的。用2個循環粘貼你的代碼,什麼不能用它 – Pikoh

+0

您好我用這個包含我的搜索的列:for(int i = 0; i

回答

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); 
     } 
    } 
} 

因爲當你從網格中刪除行(S),dataGridView1.Rows需要新的價值

+0

非常感謝你 –

+0

但是我應該在「Cells []」屬性中使用什麼? –

+0

我編輯了我的答案,試試這個 –