我有一个带有一些numreicUpDown控件的WinForm,我想知道该值是递增还是递减。控件触发两种情况下更改的事件值,据我所知,程序调用方法UpButton和DownButton。有没有其他方法可以知道值是如何更改的,或者我是否必须使用此方法执行此操作(例如,在上下按钮中触发事件或实现我的代码)
答案 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());
}
}
然后,当您在表单上实现控件时,您可以连接一些事件,以告知您单击了哪个按钮或按键(向上/向下)。