sendmessage改变datetimepicker控件值

想控制另外一个winform 里面有个datetimepicker日期控件,SendMessage怎么修改他的值呢,C#

在C#中,你可以使用SendMessage函数来向其他应用程序发送消息。为了改变另一个窗口中DateTimePicker控件的值,你需要向该窗口发送一个消息,消息参数是一个日期值,具体步骤如下:

1.引用System.Runtime.InteropServices命名空间。
2.使用FindWindow函数查找目标窗口的句柄。
3.使用SendMessage函数发送消息。
下面是一个示例代码,可以将其添加到你的应用程序中并进行修改:

using System.Runtime.InteropServices;

...

[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr FindWindow(string className, string windowName);

[DllImport("user32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);

const int DTM_SETSYSTEMTIME = 0x1002;

...

// 获取另一个窗口的句柄
IntPtr targetHandle = FindWindow(null, "目标窗口标题");

// 准备日期值
DateTime dateTime = DateTime.Now.AddDays(1);
long fileTime = dateTime.ToFileTime();

// 发送消息
SendMessage(targetHandle, DTM_SETSYSTEMTIME, IntPtr.Zero, (IntPtr)fileTime);


需要注意的是,上述代码仅仅是将另一个窗口中的DateTimePicker控件值改为当前日期加1天。如果你想根据具体需求修改日期值,需要将相应代码替换到上述示例代码中。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^