#region 查询按钮
private void btnOK_Click(object sender, EventArgs e)
{
this.palDate.Controls.Clear();//清空panel容器里的控件
Bind();
}
#endregion
#region panel里动态添加label控件
private void Bind()
{
//获取当前时间
DateTime datetime = Convert.ToDateTime(DateTime.Now.ToString("yyyy年MM月dd日"));
//获得当月第一天
DateTime dt = new DateTime(this.dtpStartDate.Value.Year, this.dtpStartDate.Value.Month, 1);
//0表示星期天 1表示星期一
int spaces = Convert.ToInt32(dt.DayOfWeek);
//获取该月的天数
int days = DateTime.DaysInMonth(dt.Year, dt.Month);
//定义坐标
Point currt = new Point(0, 0);
for (int i = 1; i <= spaces + days; i++)
{
if (i > spaces)
{
DateTime temp = new DateTime(this.dtpStartDate.Value.Year, this.dtpStartDate.Value.Month, i - spaces);
Label lbl = new Label();//创建label
lbl.Text = (i - spaces).ToString();//设置label上的显示
lbl.Tag = temp.ToShortDateString();
lbl.TextAlign = ContentAlignment.MiddleCenter;//label上的文字居中对齐
lbl.AutoSize = false;//设置label尺寸不可更改
lbl.BorderStyle = BorderStyle.FixedSingle;//设置label的样式
lbl.Size = new Size(70, 40);//定义label尺寸大小
lbl.Location = currt;//定义label坐标从哪开始
this.palDate.Controls.Add(lbl);//将label添加打牌panel里
//判断未过的日期,label设置成不可用
if (datetime.Date.CompareTo(temp.Date) < 0)
{
lbl.Enabled = false;
}
}
currt.X += 74;
if (i % 7 == 0)//换行
{
currt.X = 0;
currt.Y += 44;
}
}
}
#endregion
![](//images0.cnblogs.com/blog/497981/201305/27143350-479bc918b133416e9c617b3c610fdb8d.x-png)