首页 > 解决方案 > 如何以编程方式突出显示 DateTimePicker 中的特定部分?

问题描述

我在以编程方式生成的 Windows 窗体应用程序上有一个DateTimePicker 控件(自定义格式)

要突出显示其中的特定部分/部分(例如小时),我必须手动单击它。要求我能够以编程方式(而不是通过手动单击)在 DateTimePicker 的特定部分上执行此突出显示。

我尝试过使用 DateTimePicker 控件的事件、方法和其他属性。我也搜索并重新搜索了互联网,但没有找到任何方向。

这是用于说明的屏幕截图:

在此处输入图像描述

在这里,在 DataGridView 的单元格上,是我的自定义格式 DateTimePicker。

标签: c#.netwinformsdatetimepicker

解决方案


我终于找到了解决方案。我想分享它,以便将来遇到类似问题的人可以从中受益。

DateTimePicker (DTP) 失去其通常行为的原因是:

  • 它以编程方式生成并“添加”为 GridView 的控件(而不是表单)

因此,无法应用“Select()”和“Focus()”等常规方法。

我只是将 DTP 控件放在表单上并使其不可见。然后,每当我需要编辑一个单元格时,控件就会覆盖该单元格并将焦点转移到它。像普通的 DTP 控制一样,现在它会自动突出显示第一部分,即在我的情况下的小时。

这是解决方案的本质。休息是处理意外事件。由于它是某些客户的产品,我无法共享代码。


推荐阅读