终于找了两段代码,一个是C++ 一个是C# 希望高手们把这两段代码转成VB代码
C#代码
//===============================时间结构=======
/// <summary>
/// 时间类型
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public class SYSTEMTIME
{
public ushort wYear;
public ushort wMonth;
public ushort wDayOfWeek;
public ushort wDay;
public ushort wHour;
public ushort wMinute;
public ushort wSecond;
public ushort wMilliseconds;
}
//=============================================
[DllImport("user32.dll")]
public static extern int SetFocus(IntPtr hwnd);
[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, int msg, int wParam, SYSTEMTIME lparam);
[DllImport("user32.dll")]
public static extern int SendMessage(int hWnd, int msg, int wParam, int lparam);
[DllImport("user32.dll")]
public static extern int PostMessage(int hWnd, int msg, int wParam, int lparam);
/// <summary>
/// 设置日期控件值
/// </summary>
/// <param name="dtpHwnd">日期控件句柄</param>
/// <param name="dt">日期值</param>
/// <returns>成功返回true 否则返回false</returns>
public static bool SetDateTimePickerValue(IntPtr dtpHwnd, DateTime dt)
{
SYSTEMTIME stT = new SYSTEMTIME();
stT.wYear = (ushort)dt.Year;
stT.wMonth = (ushort)dt.Month;
stT.wDay = (ushort)dt.Day;
stT.wHour = (ushort)0;
stT.wMinute = (ushort)0;
stT.wSecond = (ushort)0;
stT.wMilliseconds = (ushort)0;
int rr=SetFocus(dtpHwnd);
int jj=SetFocus(new IntPtr(rr));
int yy = SendMessage(dtpHwnd.ToInt32(), 0x0007, 0, 0);
int r = SendMessage(dtpHwnd.ToInt32(), 0x00001002, 0x00000000, stT);
int yyy = PostMessage(dtpHwnd.ToInt32(), 0x000F, 0, 0);
if (r == 1)
{
return true;
}
else
{
return false;
}
}