使用DateTimePicker关闭对话框

时间:2012-09-10 10:45:31

标签: c# .net windows winforms

我们要求在自动注销期间关闭表单。我们通过迭代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);             
}

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

如何关闭表单?

1 个答案:

答案 0 :(得分:0)

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

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

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

这样做的好处是不会像Close(或WM_CLOSE)那样破坏任何窗口对象。