我有日期時間選擇器,我想使用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