0

我需要MonthCalendar在单独的对话框中显示 , ,如下所示:

在此处输入图像描述

问题是这个日历的显示取决于应用程序运行的系统,导致这样的变化(来自同一个应用程序,在不同的 PC 上):

在此处输入图像描述

据我了解,这取决于应用程序恰好在其下运行的视觉风格或主题。问题是,我如何计算需要放置日历的表格的适当大小,或者以其他方式使其在具有不同主题的多个系统上看起来很优雅?

我对当前的代码很不满意,它将日历放置在一个表单中container

private static Form SetUpCalendar()
{
    var calendar = new MonthCalendar
                {
                    MaxSelectionCount = maxSelectionCount,
                    BackColor = SystemColors.Info,
                    CalendarDimensions = new Size(1, 1),
                    // (..etc...)                    
                };

    var container = new Form
                {
                    FormBorderStyle = FormBorderStyle.FixedDialog,
                    Size = new Size(calendar.Width + 74, calendar.Height + 47)
                };

    container.Controls.AddRange(new Control[] {calendar});

    return container;
}

我一直无法找到一种方法来更好地自动调整表单的大小以适应日历,并且将不胜感激有关如何改进这一点的任何提示。

4

1 回答 1

4

为什么不将表单的AutoSize属性设置为 true,并将AutoSizeMode设置为GrowAndShrink?如果要消除控件周围的空间,还需要设置边距属性。

于 2013-03-22T15:27:11.513 回答