更改月份日历大小

时间:2014-05-13 12:49:50

标签: c# .net winforms monthcalendar

是否有任何可能的方法来更改日历控件的宽度和高度。我想改变日历的宽度和高度。当我谷歌发现时,这一步 1)在面板中删除月历并允许删除true。并增加面板的大小。对我不起作用。 2)将月历日历放在组框中并停靠填充。这显示了本月的许多个月。 3)增加日历控件的字体大小,对我不起作用。

有没有办法做到这一点。提前感谢您的意见

3 个答案:

答案 0 :(得分:5)

使用视觉样式呈现MonthCalendar控件时,其大小仅遵循系统设置,并且您无法更改其大小。但是,作为一种选择,您可以为此控件禁用视觉样式,并为控件设置更大的字体以更改其大小:

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
public class MyMonthCalendar : MonthCalendar
{
    [DllImport("uxtheme.dll", ExactSpelling = true, CharSet = CharSet.Unicode)]
    static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList);
    protected override void OnHandleCreated(EventArgs e)
    {
        SetWindowTheme(Handle, string.Empty, string.Empty);
        base.OnHandleCreated(e);
    }
}

然后它将显示如下(字体大小:16):

enter image description here

与默认外观相比:

enter image description here

答案 1 :(得分:2)

可悲的是,你无法调整月历控件的大小,至少不是你想要的。

唯一"调整大小"只会在第一个月之后再添加一个月(您可以通过增加Minimum Size属性来实现此目的)。

如果您想调整控件的大小但仍然只显示一个月,则必须自行控制,或使用任何第三方控件,例如this

答案 2 :(得分:0)

您还可以将日历窗口小部件放入“查看框”窗口小部件中。 日历将随视图框调整大小。 链接到我的来源(28/10/2019): https://www.wpf-tutorial.com/misc-controls/the-calendar-control/ 希望能对您有所帮助。