C#でe.cancelが機能しない場合の回避策
C#におけるe.Cancelは標準的にイベントのデフォルト動作をキャンセルするために使用されます。e.Cancelが動作しない場合は、以下のようないくつかの原因とソリューションがあります。
- キャンセル
- キャンセルする
- ネイティブな日本語で言い換えてください。ただし、1 つのオプションのみが必要です:true
private void SomeEvent_Handler(object sender, EventArgs e)
{
// 取消事件的默认行为
e.Cancel = true;
}
- キャンセルイベント引数
public event EventHandler<CancelEventArgs> SomeEvent;
- キャンセル
- キャンセル
- キャンセル
- キャンセルする
private void RaiseSomeEvent()
{
var cancelEventArgs = new CancelEventArgs();
// 触发事件
SomeEvent?.Invoke(this, cancelEventArgs);
// 检查e.Cancel的值并根据需要采取行动
if (cancelEventArgs.Cancel)
{
// 取消事件的默认行为
}
else
{
// 继续执行事件的默认行为
}
}
上記の方法を試しても問題が解決しない場合は、e.Cancel が機能しない可能性がある他の理由(イベントの呼び出し順、イベントの購読や解除など)がコード内にあるかどうかを必ず確認してください。