無効な日付 (現在または過去の日付である必要があります) が入力された後、e.Cancel = true がありますが、Exit ボタンの close イベントは発生しません。e.Canel = true ステートメントを取り出したところ、すべて正常に動作しているように見えますが、これが将来別の問題を引き起こすのではないかと懸念しています。これをコーディングする正しい方法は何ですか?
private void maskedTextBoxDate_TypeValidationCompleted(object sender, TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The data you supplied must be a valid date in the format mm/dd/yyyy.", maskedTextBoxDate, 40, 25, 2000);
}
else
{
//Now that the type has passed basic type validation, enforce more specific type rules.
DateTime userDate = (DateTime)e.ReturnValue;
if (userDate > DateTime.Today)
{
toolTip1.ToolTipTitle = "Invalid Date";
toolTip1.Show("The date can't be greater than today's date.", maskedTextBoxDate, 40, 25, 2000);
//Cancel property: true if the event should be canceled; otherwise false
e.Cancel = true;
}
}
}
終了ボタンのクローズ イベント:
private void cmdExit_Click(object sender, EventArgs e)
{
this.Close();
}