同步 MonthCalendar 和 Datetimepicker

Posted

技术标签:

【中文标题】同步 MonthCalendar 和 Datetimepicker【英文标题】:Synchronize MonthCalendar and Datetimepicker 【发布时间】:2013-08-20 14:05:02 【问题描述】:

我在表单中有一个 MonthCalendar 和一个 Datetimepicker。有没有办法同步它们?换句话说,当我更改 MonthCalendar 的日期时,DateTimePicker 的日期将自动等于该日期,反之亦然。 我在下面尝试了这些,但都不起作用。

datetimePicker1 = monthCalendar1.SelectionRange.ToString("dd MMMM yyyy  hh :mm");
monthCalendar1 = datetimePicker1.Value.ToOADate();

【问题讨论】:

您的monthCalendar1 是否具有DateValue 之类的DateTime 类型的属性?顺便说一句,它有DataBindings吗? @KingKing 这是 Visual Studio 提供的默认月份日历,我认为它没有这些属性。 【参考方案1】:

只需使用这些控件的默认事件来更新另一个。双击控件以添加事件处理程序并使它们看起来像这样:

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e) 
        monthCalendar1.SetDate(dateTimePicker1.Value);
    

    private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) 
        dateTimePicker1.Value = monthCalendar1.SelectionStart;
    

请注意,DateTimePicker 已经内置了 MonthCalendar,您可以在单击下拉按钮时获得它。这是它的典型使用方式,它们已经同步了。

【讨论】:

这正是我想要的。是的,我被告知了这一点,但在这个项目中,出于某些原因,我想同时拥有这两者。谢谢。

以上是关于同步 MonthCalendar 和 Datetimepicker的主要内容,如果未能解决你的问题,请参考以下文章

MonthCalendar - 禁用天数

如何应用VB.NET MonthCalendar控件

Windows 7 中的 MonthCalendar 不同

当 ShowToday 为 False 时,MonthCalendar 控件有额外的边框

MonthCalendar.SelectionRange 数据绑定示例

MonthCalendar 颜色不变