NumericUpDown があります。ユーザーがその値を変更すると、確認のために MessageBox を表示します。ユーザーが [はい] を選択した場合、すべて問題ありません。ユーザーが [いいえ] を選択した場合、元の値に戻します。
私は2つの問題に遭遇しました:
Q1. 元の値を取得する方法。
ユーザーが [はい] を選択すると更新されるプライベート メンバー変数に格納します。しかし、もっと良い方法があれば知りたいです。
Q2. 値を元の値に再度変更すると、イベント ハンドラーがトリガーされます。
それを処理するためにif条件を入れました。
これが私の現在のコードです:
if (mNumericUpDownValue != mReactantNumericUpDown.Value)
{
bool change = !mIsModified;
if (mIsModified && ReportChangeWarning())
{
change = true;
}
if (change)
{
mReactantGroup = (int)mReactantNumericUpDown.Value;
ClearUserValues();
UpdateControls();
}
else
{
mReactantNumericUpDown.Value = mNumericUpDownValue;
}
}