[英]Update Value of the NumericUpDown control without raising of ValueChanged event (Winforms)
[英]Why is the ValueChanged event not triggered on a NumericUpDown Control When the Value is Changed Manually?
我將代碼附加到兩個NumericUpDown控件的ValueChanged事件:
private void numericUpDownHeight_ValueChanged(object sender, EventArgs e)
{
if (checkBoxRetainRatio.Checked)
{
numericUpDownWidth.Value = numericUpDownHeight.Value;
}
}
private void numericUpDownWidth_ValueChanged(object sender, EventArgs e)
{
if (checkBoxRetainRatio.Checked)
{
numericUpDownHeight.Value = numericUpDownWidth.Value;
}
}
當我使用控件的向上/向下箭頭更改編輯框中的值時,此方法非常有用。 但是,如果我手動編輯該值(例如,當我想將其從100更改為25,並且可以通過手動六次擊鍵來完成,而增加5,則使用向下箭頭需要15),則該事件不會觸發。
有沒有一種快速的方法來解決這種輕微的刺激(IOW,如果要完成它確實有些不可思議和棘手的事情,我就不會打擾)。
對於發生ValueChanged事件,可以通過單擊向上或向下按鈕,或通過用戶輸入控件讀取的新值來在代碼中更改Value屬性。 當用戶按下ENTER鍵或離開控件時,將讀取新值。 如果用戶輸入一個新值,然后單擊向上或向下按鈕,則ValueChanged事件將發生兩次。
來源: https : //msdn.microsoft.com/zh-cn/library/system.windows.forms.numericupdown.valuechanged%28v=vs.110%29.aspx
我將使用sender.Value,其中包含最新的值。 您必須將其強制轉換為發件人的類型。
對於numericUpDown組件:
((System.Windows.Forms.NumericUpDown)(sender)).Value.ToString()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.