我有一個NumericUpDown。當用戶改變它的值時,我顯示一個MessageBox來確認。如果用戶選擇是,一切都很好。如果用戶選擇否,我想恢復原始值。在NumericUpDown中恢復值
我遇到了兩個問題:
Q1。如何獲得原始價值。
我將它存儲在私有成員變量中,當用戶選擇是時更新。但我想知道是否有更好的方法。 Q2302。將值更改爲原始值再次觸發我的事件處理程序。
我已經把一個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;
}
}
你Q1是精細。在綁定您的控件時或者在用戶提交更改的值時存儲原始值。關於Q2,最簡單的可能是重置爲舊值時,首先註銷您的事件'ValueChanged'偵聽器,更改值,重新分配事件偵聽器。我不知道如果'NumericUpDown'有一個特殊的事件,只有當值由於用戶輸入而改變時纔會觸發。 –
謝謝。我不知道我們可以註銷一個事件。在我來這裏之前,我正在使用Google搜索。 –