我的C#Windows应用程序中有DateTimePicker控件。其中一些格式化为显示日期,而其他显示时间。
用户想要点击某个文本框字段,其中包含14:25:56
等文本格式的时间,然后按 CTRL + C 。然后他想点击DateTimePicker并按 CTRL + V 将此时间粘贴到DateTimePicker中的日期。
默认情况下不起作用。是否有可能让它像它一样工作?
答案 0 :(得分:2)
我在大约一年前做过类似的事情,将值粘贴到数据网格中。我通过在要将值粘贴到的控件的 KeyDown 事件上放置一个事件处理程序来处理它,然后您可以使用事件args来检查哪个字符(在这种情况下,<按下强> 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;
}
}
我希望这会有所帮助。