0

我们需要在自动注销期间关闭表单。我们通过迭代表单来关闭对话框Application.OpenForms

如果对话框具有日期时间控件 ( ) 并且日历窗口处于活动状态,则我们无法关闭对话框DateTimePicker,如下图所示

http://ww.functionx.com/vcnet/controls/images/Calendar4.gif

我试图通过调用CloseMethod 来关闭表单。它没有用。

然后我在枚举窗口后发送 WM_CLOSE 消息关闭日历窗口,如下所示,然后Close在表单上调用。在这种情况下,日历窗口关闭。但是表格没有关闭

if (sb.ToString() == "SysMonthCal32")
{
    SendMessage(hWnd, 0x0010, IntPtr.Zero, IntPtr.Zero);             
}

在这两种情况下,如果我单击对话框,它就会关闭。

如何关闭表格?

4

1 回答 1

0

我无法复制您的问题,这是对 form.Close() 的调用导致表单关闭,无论日期选择器控件是否打开。(通过使用 PostMessage WM_CLOSE 形成的 hwnd 也得到了相同的结果)

我确实发现我可以通过调用其 Hide 然后 Show 方法使日期选择器控件“关闭”:

dateTimePicker1.Hide();
dateTimePicker1.Show();

这还具有不破坏任何窗口对象的优点,就像关闭(或 WM_CLOSE)可能做的那样。

于 2012-10-10T22:11:11.370 回答