在自定义DateTimePicker上显示日历

时间:2012-10-29 06:55:39

标签: c# custom-datetimepicker

我基于Visual Studio 2010 c#中的UserControl创建了自定义 datetimepicker 。此控件中有RichTextBoxButtonMonthCalendar

http://i.imgur.com/85iwc.png?1

我更改UserControl的高度以隐藏/显示日历。我的问题是,当我将此控件放在位于面板上的GroupBox时,父级重叠它:

http://i.imgur.com/tVrI0.png

我已经在控件 Parent 上解决了这个循环,直到找到主窗体,然后将其设置为我的DateTimePicker的父级。

    Control parent = this.Parent ?? null;
        while (parent != null)
        {
            if (parent is Form)
                break;
            parent = parent.Parent;

        }
        this.clnMonth.Parent = parent;
        clnMonth.Location = this.PointToScreen(Point.Empty);

我尝试将MonthCalendar放在另一个表单上并在点击后显示/隐藏它,但是在 DateTimePicker 下将表单定位的问题很严重。上面的方法工作正常,但我知道这不是最好的解决方案。你能给我一个不同的想法吗?

0 个答案:

没有答案