2011-01-11 6 views
0

cellvaluechangedイベントはこれに適していますか?どうやって?私はあまりにも私はそれを行うことができ、私のfunction.howのfiltervalueし、ユーザーはそれを書くことをセルの値を送信する必要があるどのようにセルがアクティブで、セルの値を自分の関数に渡すかをグリッドビューに問い合わせることができますか?

void filterDataGridView(DataGridView dgv, string columnName, string filterValue) 
    { 
     foreach (DataGridViewRow row in dgv.Rows) 
     { 
      if (row.Cells[columnName].Value.ToString().Contains(filterValue)) 
      { 
       row.Visible = true; 
      } 
      else row.Visible = false; 
     } 
    } 

+0

「どのセルがアクティブですか」とはどういう意味ですか? – Nanne

+0

これは現在のセルを意味します:this.dataGridView1.CurrentCell.Value.ToString() – sss

+0

しかし、それはオブジェクト参照の例外を設定しません... – sss

答えて

0

セルのテキストを入力するユーザーに反応したい場合は、CellValidatingイベントをお勧めします。

  • あなたはCell_validatingがあなたのフィルタメソッドを呼び出すと、あなたには、いくつかの他のデータグリッド(一定値にあなたの例で表示/非表示の行)
を変更することがあり
  • を発生
  • あなたの細胞の上にテキストを書き込みます

    HTH

    +0

    )CellValueChangedについて、またはCellEndEditについては – Tester101

    +0

    cellValueChangedについては、あなたのdataSource。CellEndEditは別の可能性もありますが、検証エラー(警告、ツールチップなど)を表示するか、CellValidatingの編集をキャンセルすることは私にはかなり良いようです。 –

    関連する問題