我想处理用户点击Today
的{{1}}部分。我查看了DateTimePicker
的反编译源代码,寻找要覆盖但无法找到的事件或方法。
我知道我可以处理System.Windows.Forms.DateTimePicker
事件并将其与ValueChanged
进行比较,但我特别需要处理底部DateTime.Today
按钮的点击(参见屏幕截图)。
有没有办法通过使用标准控件(或通过继承它)来实现,或者我应该使用/创建一个完整的自定义控件吗?
答案 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!");
};