C# 计算包含大小可能不同的控件的窗体的大小?
我需要在单独的对话框中显示一个C# 计算包含大小可能不同的控件的窗体的大小?,c#,.net,winforms,resize,themes,C#,.net,Winforms,Resize,Themes,我需要在单独的对话框中显示一个MonthCalendar,如下所示: 问题在于,此日历的显示取决于应用程序运行的系统,导致类似的变化(来自同一应用程序,在不同的PC上): 据我所知,这取决于应用程序运行时的视觉样式或主题。问题是,我如何计算日历需要放入的表单的适当大小,或者以其他方式使其在具有不同主题的多个系统上看起来优雅 我对当前的代码并不满意,它将日历放置在一个表单(容器)中,该表单的大小(硬编码)适合一个特定主题(第一张图片): 我还没有找到一种方法来自动调整表单的大小以更好地适应日历
MonthCalendar
,如下所示:
问题在于,此日历的显示取决于应用程序运行的系统,导致类似的变化(来自同一应用程序,在不同的PC上):
据我所知,这取决于应用程序运行时的视觉样式或主题。问题是,我如何计算日历需要放入的表单的适当大小,或者以其他方式使其在具有不同主题的多个系统上看起来优雅
我对当前的代码并不满意,它将日历放置在一个表单(容器
)中,该表单的大小(硬编码)适合一个特定主题(第一张图片):
我还没有找到一种方法来自动调整表单的大小以更好地适应日历,如果有任何关于如何改进的建议,我将不胜感激 为什么不将窗体的自动调整大小属性设置为true,并将自动调整大小属性设置为增长和收缩?如果要消除控件周围的空格,还需要设置margin属性。为什么不将窗体的AutoSize属性设置为true,并将AutoSizeMode设置为growthandshrink?如果要消除控件周围的空间,还需要设置margin属性。这很有效,谢谢。注意:对于内部表单(日历),我也必须将边距(和填充)设置为零,否则在外部表单中,它周围仍然会有一些空间。这很有效,谢谢。注意:对于内部表单(日历),我也必须将边距(和填充)设置为零,否则在外部表单中,它周围仍然会有一些空间。
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;
}