0

ユーザーが DatagridView セルに無効な値を入力したときに、_CellValidating イベントで「e.Cancel = true」を設定しています。

e.Cancel は、ユーザーがフォームを閉じたり X ボタンを押したりすることもできないようです。どうすれば例外を追加できますか? (e.Cancel が true に設定されていても、ユーザーがフォームを閉じることを許可します)

4

1 に答える 1

1

このシナリオに基づいてテスト プロジェクトを作成したところ、DataGridViewのイベントがのイベントのCellValidating前に呼び出されるようです。これは、セルが検証される時点で、ユーザーがフォームを閉じようとしたかどうかを知る方法がないことを意味します。FormClosing

厳密に言えば、イベントの正しい順序は、フォームを閉じる前に、ユーザーがセルに有効なデータを入力する (またはエスケープ キーを押して編集をキャンセルする) ことです。ただし、関係なくフォームを閉じることを許可する場合Closingは、フォームのイベントを処理できます。

protected override void OnClosing(CancelEventArgs e) {
    e.Cancel = false;
    base.OnClosing(e);
}

これは悪い習慣ですが、要求した動作が得られます。

于 2012-06-18T03:20:30.407 に答える