これは単純な解決策が必要なように聞こえるが、私はそれを解決できない。ユーザーがOKまたはCancelを使用してフォームを閉じるときに検出しますか?
private void DrawBorderForm_FormClosing(object sender, FormClosingEventArgs e)
{
_dCornerRadius = 0.0;
bool bIsDouble = false;
try
{
bIsDouble = Double.TryParse(textBoxRadius.Text, out _dCornerRadius);
}
catch
{
bIsDouble = false;
}
if (!bIsDouble || _dCornerRadius < 0.0 || _dCornerRadius > 100.0)
{
MessageBox.Show("Please input a radius value of 0 to 100!");
e.Cancel = true;
return;
}
}
それはテキスト値のいくつかを検証し、値がOKをされていない場合、フォームを閉じる抑制:
私はC#のフォームとFormClosing
イベントハンドラを持っています。
問題は、このハンドラがと閉じるをキャンセルOK の両方のための焼成およびされていることです。キャンセルまたはクローズを確認する必要はありません。単に[OK]をクリックしているため、フォームを閉じる必要があります。
を、 "データが無効である限り、「OK」ボタンをクリックすることはできません。しかし、あなたの特定の目的のために、フォーム終了イベントの代わりに、OKボタンのクリックされたイベントを処理する必要があります。 –
それでは 'OK 'の中にフラグを入れてください。 – Xaqron
これは、このフォームを閉じるコードを見るのに役立ちます。実際にフォームを閉じる前に、ユーザーがキャンセルボタンを押したときに、変数を設定して「キャンセル」としましょう。 FormClosingでその変数をチェックし、trueに設定されている場合はすべてのデータを破棄します。 – r41n