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

gil*_*nis 2 c# user-interface monthcalendar winforms

在Winform的MonthCalendar控件中,当我不想显示今天的标签时,我在日历的顶部和底部会出现一个奇怪的白色边框.

反正有禁用此功能吗?

Han*_*ant 6

我想我也看到了这一点.日历的大小由名为GetMinReqRect()的私有方法计算.当ShowToday关闭时,它返回的大小太大.此方法在参考源中的注释是:

在内部使用以获得显示MonthCalendar所需的最小大小.这是必需的,因为如果showToday设置为false,NativeMethods.MCM_GETMINREQRECT返回的值不正确.

在我看来,Windows组中的某个人修复了这个错误并且忘了告诉WF小组.不出所料,WF小组很难找到.

我没有看到明显的解决方法,该方法是私有的.SetBoundsCore()应用大小,没有办法绕过它.您可以将错误发布到connect.microsoft.com,但是您将获得"发布到论坛以获取帮助"的消息.