2012-10-25 11 views
7

検索結果のみを表示するには、どのようなコードを追加する必要がありますか?DataGridview検索:検索結果のみを表示し、他の行を非表示にしますか?

今すぐ検索すると検索結果が選択され(強調表示され)、その他の検索結果はそのまま残ります。

は(単独、のみと、検索結果を表示)が、任意の成功なしに他の行を非表示にしようとして。助言がありますか? 私はdatagridviewを使用しています。

マイコード:

private void button3_Click_1(object sender, EventArgs e) 
{ 
    string search = textBox1.Text; 

    for (int i = 0; i < dgTest.Rows.Count; i++) 
    { 
     if (dgTest.Rows[i].Cells[0].Value.ToString() == search) 
     { 
      dgTest.Rows[i].Selected = true; 
      break; 
     } 
     else 
     { 
      dgTest.Rows[i].Selected = false; 
     } 
    } 
} 

答えて

1

あなたはこれを試すことができます。

for (int i = 0; i < dgTest.Rows.Count; i++) 
{ 
    if (dgTest.Rows[i].Cells[0].Value.ToString() == "search") 
    { 
     dgTest.Rows[i].Selected = true; 
     dgTest.Rows[i].Visible = true; 
    } 
    else 
    { 
     dgTest.Rows[i].Visible = false; 
     dgTest.Rows[i].Selected = false; 
    } 
} 
5

あなたのDataGridViewがデータソースにバインドされていない場合は、falseに列のVisibleプロパティを設定すると、それを隠します:

for (int i = 0; i < dgTest.Rows.Count; i++) 
    { 
     var row = dgTest.Rows[i]; 

     if (row.Cells[0].Value.ToString() == search) 
     { 
      row.Selected = true; 
      row.Visible = true; 
     } 
     else 
     { 
      row.Selected = false; 
      row.Visible = false; 
     } 
    } 

(I「の休憩を削除あなたが一致する行を発見した後も、あなたが他の行を継続して非表示にしたいと思うよう 'コマンド、。)

あなたはデータバインディングを使用している場合は、に示すように、しかし、それは、そう簡単ではありませんthis page

+0

が助けてくれてありがとう!私はデータバインディングを使用しているので、残念ながら難しくなりました。 :P – user1773766

関連する問題