将值粘贴到 DatetimePicker

Pasting values into DatetimePicker

我的 C# Windows 应用程序中有 DateTimePicker 控件。其中一些格式化为显示日期,而另一些则显示时间。

用户想要点击一些文本框字段,其中包含文本格式的时间,例如 14:25:56,然后按 CTRL + C.然后他想单击 DateTimePicker 并按 CTRL + V 将此时间粘贴到 DateTimePicker 中的日期。

默认情况下不起作用。是否有可能使类似的东西完全起作用?

大约一年前我做了类似的事情,将值粘贴到数据网格中。我通过在要将值粘贴到的控件的 KeyDown 事件上放置一个事件处理程序来处理它,然后您可以使用事件参数来检查哪些字符(在此在这种情况下,V) 被按下并且修改键 (CTRL, SHIFT, ALT, 等) 被按下。

一旦您知道 CTRL+V 被按下,您可以创建一些代码来解析 Clipboard.GetText(); 返回的字符串,使用 DateTime.Parse(); 作为 defined on MSDN 并将值存储在日期时间选择器中。这是我得到的。您需要进行一些验证以确保文本的格式正确。您可以使用 DateTime.TryParse(); 而不是我正在使用的 DateTime.Parse() 来执行此操作。

private void dateTimePicker1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Modifiers == Keys.Control && e.KeyCode == Keys.V)
    {
        dateTimePicker1.Value = DateTime.Parse(Clipboard.GetText());
        e.Handled = true;
    }
}

希望对您有所帮助。