如何在鼠标滚轮上进行DateTimePicker递增/递减

Kse*_*pac 8 c# winforms

添加DateTimePicker控件时,可以选择控件值的一部分(例如月份),然后使用向上/向下箭头修改日期/时间值的这一部分(例如,递增/递减月份).

我想做的是用鼠标滚轮允许相同的事情.我试图在MouseWheel事件上注册,但我找不到方法知道我的日期/时间的哪一部分当前被选中,所以我无法知道我是否应该增加时间,日期,月份或者年.

有没有办法做到这一点?

小智 13

一个可能但不太优雅的解决方案是:

private void dateTimePicker1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
    if (e.Delta > 0) 
    {
        System.Windows.Forms.SendKeys.Send("{UP}");
    } 
    else 
    {
        System.Windows.Forms.SendKeys.Send("{DOWN}");
    }
}
Run Code Online (Sandbox Code Playgroud)

这肯定适用于一般情况,但是一些极端情况可能会有意想不到的结果(比如重写KeyUp/KeyDown事件)