Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DateTimePicker中处理今天的单击_C#_Winforms_Datetimepicker - Fatal编程技术网

C# 在DateTimePicker中处理今天的单击

C# 在DateTimePicker中处理今天的单击,c#,winforms,datetimepicker,C#,Winforms,Datetimepicker,我想处理用户今天点击日期时间选择器的部分。我查看了System.Windows.Forms.DateTimePicker的反编译源代码,查找要重写的事件或方法,但找不到任何事件或方法 我知道我可以处理ValueChanged事件并将其与DateTime.Today进行比较,但我特别需要处理点击底部的Today按钮(请参见屏幕截图) 有没有一种方法可以通过使用标准控件(或继承它)来实现这一点,或者我应该使用/创建一个完整的自定义控件来实现这一点?如果您可以计算当前行的矩形: Rectangle

我想处理用户今天点击
日期时间选择器的
部分。我查看了
System.Windows.Forms.DateTimePicker
的反编译源代码,查找要重写的事件或方法,但找不到任何事件或方法

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


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

如果您可以计算当前行的矩形:

Rectangle todayRect = new Rectangle(dateTimePicker1.Left, dateTimePicker1.Bottom + 160, dateTimePicker1.Width, 20);
然后可以将当前鼠标位置与
特写
事件处理程序中的矩形进行比较:

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