在DateTimePicker中单击“今天”

时间:2014-08-21 12:31:30

标签: c# winforms datetimepicker

我想处理用户点击Today的{​​{1}}部分。我查看了DateTimePicker的反编译源代码,寻找要覆盖但无法找到的事件或方法。

我知道我可以处理System.Windows.Forms.DateTimePicker事件并将其与ValueChanged进行比较,但我特别需要处理底部DateTime.Today按钮的点击(参见屏幕截图)。

DateTimePicker

有没有办法通过使用标准控件(或通过继承它)来实现,或者我应该使用/创建一个完整的自定义控件吗?

1 个答案:

答案 0 :(得分:1)

如果你可以计算今天行的矩形:

Rectangle todayRect = new Rectangle(dateTimePicker1.Left, dateTimePicker1.Bottom + 160, dateTimePicker1.Width, 20);

然后可以将当前鼠标位置与CloseUp事件处理程序中的该矩形进行比较:

dateTimePicker1.CloseUp += (s, e) =>
   {
       Point p = Cursor.Position;
       if (todayRect.Contains(PointToClient(p)))
           Console.WriteLine("Today!");
   };