我们要求在自动注销期间关闭表单。我们通过迭代Application.OpenForms
如果对话框具有日期时间控件(DateTimePicker
)并且日历窗口处于激活状态,我们无法关闭对话框,如下图所示
http://ww.functionx.com/vcnet/controls/images/Calendar4.gif
我尝试通过调用Close
方法关闭表单。它没用。
然后我在枚举窗口后发送WM_CLOSE消息以关闭日历窗口,如下所示,然后在窗体上调用Close
。在这种情况下,日历窗口关闭。但表格没有关闭
if (sb.ToString() == "SysMonthCal32")
{
SendMessage(hWnd, 0x0010, IntPtr.Zero, IntPtr.Zero);
}
在这两种情况下,如果我点击对话框,它就会关闭。
如何关闭表单?
答案 0 :(得分:0)
我无法复制你的问题,这就是调用form.Close()导致表单关闭日期选择器控件是否被打开。 (通过使用PostMessage WM_CLOSE来形成hwnd也得到了相同的结果)
我确实发现我可以通过调用它的Hide然后显示方法来使日期选择器控件“关闭”:
dateTimePicker1.Hide();
dateTimePicker1.Show();
这样做的好处是不会像Close(或WM_CLOSE)那样破坏任何窗口对象。