在panel容器里面动态生成label的日历

#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

posted @ 2013-05-27 14:33  宁静思远  阅读(302)  评论(0编辑  收藏  举报