C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataGridView における値の復元


(過去ログ 28 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■13015 / inTopicNo.1)  DataGridView における値の復元
  
□投稿者/ OGAKUZU (11回)-(2008/01/23(Wed) 14:58:04)

分類:[C#] 

セルの値が入力された直後に、特定の条件によりセルの値を入力直前の状態に戻すようにしたいのですが、うまくいきません。

private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
  // 退避
  save = dataGridView1.CurrentCell.Value;
  Debug.Print("退避 ({0},{1}) [{2}]", e.RowIndex, e.ColumnIndex, save);
}

private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
  if (true /*TODO 特定の条件*/)
  {
    // 復元
    dataGridView1.CurrentCell.Value = save;
    Debug.Print(" 復元 ({0},{1}) [{2}]", e.RowIndex, e.ColumnIndex, dataGridView1.CurrentCell.Value);
  }
}

動かしてみると、セルの値は復元せず、入力された値が残ります。
Debug.Print のトレース内容は予定通りなのですが...

よろしくお願いします。

引用返信 編集キー/
■13018 / inTopicNo.2)  Re[1]: DataGridView における値の復元
□投稿者/ Hongliang (227回)-(2008/01/23(Wed) 15:08:14)
Validation 中に値書き換えるのはまずいでしょう。
DataGridViewCellValidatingEventArgs には Cancel プロパティがあります。
引用返信 編集キー/
■13028 / inTopicNo.3)  Re[2]: DataGridView における値の復元
□投稿者/ OGAKUZU (12回)-(2008/01/23(Wed) 15:50:25)
No13018 (Hongliang さん) に返信

> DataGridViewCellValidatingEventArgs には Cancel プロパティがあります。

Cancel プロパティを操作しないで(Falseのままで)抜けたから「入力された値が残った」
ということですね。

> Validation 中に値書き換えるのはまずいでしょう。

今回は、_CellValidating の処理を _CellValidated に移して、解決しました。

Hongliang さん、ご指導ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -