我有日期时间选择器,我想使用updown和箭头选择日期(下拉日历),或者如果我右键单击日期时间选择器日期选择器(下拉日历)将显示。 我该怎么做?C#日期时间选择器 - >使用updown和选择
回答
有一种方法可以做到这一点,但它有点破解(我不会太喜欢它)。正如已经指出的那样,您可以使用SendMessage
来弹出日历,但在ShowUpDown
为真(我知道您拥有的是)时不起作用。
因此,在右键单击时,您必须先将ShowUpDown设置为false,然后显示日历。要再次显示上下文,请在ValueChanged和datetime选取器的Leave事件中将ShowUpDown
设置为true。
[DllImport("user32.dll", SetLastError = true)]
private static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
private const uint WM_SYSKEYDOWN = 0x104;
void dateTimePicker1_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
this.dateTimePicker1.ShowUpDown = false;
SendMessage(dateTimePicker1.Handle, WM_SYSKEYDOWN, (int)Keys.Down, 0);
}
else
{
this.dateTimePicker1.ShowUpDown = true;
}
}
// Connect this to ValueChanged and Leave events.
private void resetDateTimePickerShowUpDown(object sender, EventArgs e)
{
this.dateTimePicker1.ShowUpDown = true;
}
谢谢,这就是我想要的,我只使用而不是ValueChanged - > CloseUp和SendKeys.Send(“%{down}”); – sczdavos
你必须发送一个Windows消息到按钮或控件,它不会被控件暴露。
This article有一个模拟按钮按下的好例子。
从一般意义上说,您正在讨论对事件的绑定。在这种情况下,您有兴趣绑定键盘和鼠标事件。
所以在keypress,keydown事件和点击事件上查看参考资料。
在按键事件中,您可以按照上/下键过滤您感兴趣的按键或按键组合的类型。
在click事件处理程序中,您将检查哪些鼠标按钮被按下(左右等等)。
一旦捕获并过滤了感兴趣的事件,就可以在日期时间选择器上触发下拉操作。要显示日历,您可以调用datetimepicker上的InvokeOnClick。
编辑:我假设你是继承控件。
实现DateTimePicker的本地Windows控件具有很少的花里胡哨的功能。您可以发送一条消息强制关闭下拉日历,但没有人强制打开它。这需要获取原油,下拉菜单可以通过按键Alt + Down打开。这使得该事件处理MouseUp事件工作:
private void dateTimePicker1_MouseUp(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Right) SendKeys.Send("%{down}");
}
它是可靠的,焦点始终是在这种情况下很好。
- 1. 日期时间选择器
- 2. 日期时间选择器
- 3. 日期/时间选择器++
- 4. C#日期选择器24小时日期和时间
- 5. 日期时间选择器C#格式
- 6. jquery日期时间选择器选择日期时间和分钟
- 7. 验证jQuery的日期选择器和时间选择器
- 8. 在时间选择器和日期选择器中的错误
- 9. Mobiscroll日期和时间选择器
- 10. 日期和时间选择器控制
- 11. jQuery日期和时间选择器
- 12. Javascript日期和/或时间选择器
- 13. 日期和时间选择器问题
- 14. 日期和时间范围选择器
- 15. ASP.NET日期和时间选择器?
- 16. Bootstrap日期和时间选择器
- 17. 时间和日期选择器(Javascript/PHP)
- 18. 日期和时间选择器
- 19. jquery日期和时间选择器
- 20. Angular2日期和时间选择器
- 21. 离子时间和日期选择器
- 22. jQuery日期选择器允许你有一个日期和时间选择器
- 23. 在jQuery日期选择器中选择日期和高亮日期选择器
- 24. 日期时间选择器 - 设置开始日期和时间
- 25. 在C#中,如何使日期时间选择器的值取决于另一个日期时间选择器
- 26. 添加时间选择器到日期选择器android
- 27. Bootstrap3日期时间选择器选择24小时不工作
- 28. 如何在日期选择器中禁用日期时选择其他日期选择器中的日期
- 29. 限制日期选择器与另一个日期选择器使用asp.net c#
- 30. 使用Selenium在日期选择器中自动选择日期
Web,Windows Forms,Silverlight,WPF,Windows Phone? –
这是什么意思? –
Windows Forms,W7; 我的意思是在datetimepicker右侧的箭头,它打开日期选择器(http://en.csharp-online.net/images/3/3b/526_111.jpg) – sczdavos