【问题标题】:Pasting values into DatetimePicker将值粘贴到 DatetimePicker
【发布时间】:2015-06-26 16:40:51
【问题描述】:
我的 C# Windows 应用程序中有 DateTimePicker 控件。其中一些被格式化为显示日期,而另一些则显示时间。
用户想要点击一些包含时间的文本框字段,例如14:25:56,然后按CTRL + C。然后他想点击 DateTimePicker 并按 CTRL + V 将此时间粘贴到 DateTimePicker 中的日期中。
默认情况下它不起作用。有没有可能让类似的东西发挥作用?
【问题讨论】:
标签:
c#
copy-paste
datetimepicker
【解决方案1】:
大约一年前,我做了类似的事情,将值粘贴到数据网格中。我通过在要将值粘贴到控件的 KeyDown 事件上放置一个事件处理程序来处理它,然后您可以使用事件 args 来检查哪个字符(在这种情况下,V) 并按下了哪些修饰键(CTRL、SHIFT、ALT 等)。 p>
一旦你知道 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;
}
}
我希望这会有所帮助。