NumericUpDown可以向上和向下区分

时间:2012-09-24 07:38:58

标签: c# winforms numericupdown

我有一个带有一些numreicUpDown控件的WinForm,我想知道该值是递增还是递减。控件触发两种情况下更改的事件值,据我所知,程序调用方法UpButton和DownButton。有没有其他方法可以知道值是如何更改的,或者我是否必须使用此方法执行此操作(例如,在上下按钮中触发事件或实现我的代码)

2 个答案:

答案 0 :(得分:3)

没有标准的方法可以做到这一点。 我建议记住旧值并将其与新值进行比较

decimal oldValue;

private void ValueChanged(object sender, EventArgs e)
{
    if (numericUpDown.Value > oldValue)
    {
    }
    else
    {
    }
    oldValue = numericUpDown.Value;
}

答案 1 :(得分:0)

创建自己的控件来覆盖那些UpButton和DownButton方法:

using System.Windows.Forms;
public class EnhancedNUD : NumericUpDown
{
    public event EventHandler BeforeUpButtoning;
    public event EventHandler BeforeDownButtoning;
    public event EventHandler AfterUpButtoning;
    public event EventHandler AfterDownButtoning;

    public override void UpButton()
    {
        if (BeforeUpButtoning != null) BeforeUpButtoning.Invoke(this, new EventArgs());
        //Do what you want here...
        //Or comment out the line below and do your own thing
        base.UpButton();
        if (AfterUpButtoning != null) AfterUpButtoning.Invoke(this, new EventArgs());
    }
    public override void DownButton()
    {
        if (BeforeDownButtoning != null) BeforeDownButtoning.Invoke(this, new EventArgs());
        //Do what you want here...
        //Or comment out the line below and do your own thing
        base.DownButton();
        if (AfterDownButtoning != null) AfterDownButtoning.Invoke(this, new EventArgs());
    }
}

然后,当您在表单上实现控件时,您可以连接一些事件,以告知您单击了哪个按钮或按键(向上/向下)。