我试图为我的项目创建一个日历,我创建了一个空白的用户控件,以便在一周的每一天使用它。
i创建的用户控件如下所示:
但是,当我运行. cs文件时,表单上没有任何变化,预期的输出应该如下所示:
我的表单输出,但没有任何"临时"用户控件:
这个问题的原因可能是什么?
这是我的代码:
private void displayDays()
{
DateTime now = DateTime.Now;
// getting the first day of the month
DateTime startofthemonth = new DateTime(now.Year, now.Month, 1);
// getting the count of days of the month
int day = DateTime.DaysInMonth(now.Year, now.Month);
// conver the startofthemont to integer
int dayoftheweek = Convert.ToInt32(startofthemonth.DayOfWeek.ToString("d"));
// i created here a blank user control from project >> add user control
for(int i = 1; i < dayoftheweek; i++)
{
UserControlBlank ucblank = new UserControlBlank();
// daycontainer is flowLayoutPanel
daycontainer.Controls.Add(ucblank);
}
}
1条答案
按热度按时间qcbq4gxm1#
startofthemonth.DayOfWeek
已经是一个int
,因此不需要将其转换为字符串,然后再转换回来。问题是2023年1月的第一天是星期日,而星期日的值是零(
0
),所以循环永远不会运行,因为1不小于0!如果目的是为一个月的每一天创建一个条目,那么您需要修改您的for循环:
如果只创建起始周,从每月的第一天开始,到第一周的最后一天(星期六)结束,则: