- 題名: DataGridViewのCellValueChangedイベントについて
- 日時: 2011/01/26 15:53:05
- ID: 28070
- この記事の返信元:
- (なし)
- この記事への返信:
- [28071] Re[1]: DataGridViewのCellValueChangedイベントについて2011/01/26 16:10:37
- ツリーを表示
■No28070に返信(としおさんの記事)
> dataGridView1.Rows[e.RowIndex].Cells[2].Value = output;
ここでdataGridView1_CellValueChangedが発生するから。
private bool blnFLG = false;
private void dataGridView1_CellValueChanged(〜)
{
if (blnFLG) return;
blnFLG = true;
//--- ここで処理
blnFLG = false;
}
こんな感じにすれば一応防げます。
分類:[.NET]
質問させていただきます。よろしくお願いします。 質問内容なのですが、現在作成中のDataGridViewのCellValueChangedイベントをプログラムに追加したのですがセル内の編集が終わってもループし、結果として 'System.StackOverflowException'のハンドルされていない例外がSystem.Windows.Forms.dllで発生しました。 と例外が発生してしまいます。 イベント内の処理は編集したDataGridView内の値をプログラム内の関数で演算し、 別のセルに表示するものなのですが、なぜ処理がループするのか分かりません。 以下にコードを示すので、ご指摘、アドバイス等ありましたらよろしくお願いします。 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { try { double input,output; input = Convert.ToDouble(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value); kaikei(input, out output); //kaikeiはプログラム内の関数 dataGridView1.Rows[e.RowIndex].Cells[2].Value = output; } catch (System.Exception ex) { MessageBox.Show(ex.Message, "error"); } }