想控制另外一个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天。如果你想根据具体需求修改日期值,需要将相应代码替换到上述示例代码中。
不知道你这个问题是否已经解决, 如果还没有解决的话: