Csharp/C Sharp by API/System.Windows.Forms/MonthCalendar

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

MonthCalendar.BoldedDates

<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public partial class Form1 : Form {

   public Form1()
   {
       InitializeComponent();
   }
   private void addButton_Click(object sender, EventArgs e)
   {
       System.DateTime[] boldDates = new System.DateTime[monthCalendar.BoldedDates.Length + 1];
       int i =0;
       foreach (DateTime currentDate in monthCalendar.BoldedDates)
       {
           boldDates[i] = currentDate;
           i++;
       }
       boldDates[i] = System.DateTime.Parse(specialDate.Text);
       monthCalendar.BoldedDates = boldDates;
   }
   private void monthCalendar_DateSelected(object sender, DateRangeEventArgs e)
   {
       specialDate.Text = e.Start.ToLongDateString();
   }

} partial class Form1 {

   private void InitializeComponent()
   {
       System.Windows.Forms.Label label1;
       System.Windows.Forms.Button addButton;
       this.monthCalendar = new System.Windows.Forms.MonthCalendar();
       this.specialDate = new System.Windows.Forms.DateTimePicker();
       label1 = new System.Windows.Forms.Label();
       addButton = new System.Windows.Forms.Button();
       this.SuspendLayout();
       // 
       // label1
       // 
       label1.AutoSize = true;
       label1.Location = new System.Drawing.Point(12, 16);
       label1.Name = "label1";
       label1.Size = new System.Drawing.Size(90, 13);
       label1.TabIndex = 2;
       label1.Text = "Pick a date to add";
       // 
       // addButton
       // 
       addButton.Location = new System.Drawing.Point(289, 9);
       addButton.Name = "addButton";
       addButton.Size = new System.Drawing.Size(75, 23);
       addButton.TabIndex = 3;
       addButton.Text = "Add";
       addButton.Click += new System.EventHandler(this.addButton_Click);
       // 
       // monthCalendar
       // 
       this.monthCalendar.CalendarDimensions = new System.Drawing.Size(3, 3);
       this.monthCalendar.Location = new System.Drawing.Point(18, 74);
       this.monthCalendar.Name = "monthCalendar";
       this.monthCalendar.Size = new System.Drawing.Size(542, 439);
       this.monthCalendar.TabIndex = 0;
       this.monthCalendar.DateSelected += new System.Windows.Forms.DateRangeEventHandler(this.monthCalendar_DateSelected);
       // 
       // specialDate
       // 
       this.specialDate.Location = new System.Drawing.Point(108, 12);
       this.specialDate.Name = "specialDate";
       this.specialDate.Size = new System.Drawing.Size(175, 20);
       this.specialDate.TabIndex = 1;
       // 
       // Form1
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
       this.ClientSize = new System.Drawing.Size(573, 529);
       this.Controls.Add(addButton);
       this.Controls.Add(label1);
       this.Controls.Add(this.specialDate);
       this.Controls.Add(this.monthCalendar);
       this.Name = "Form1";
       this.Text = "Form1";
       this.ResumeLayout(false);
       this.PerformLayout();
   }
   private System.Windows.Forms.MonthCalendar monthCalendar;
   private System.Windows.Forms.DateTimePicker specialDate;

} public class DataTimePickerBoldedDates {

   [STAThread]
   static void Main()
   {
       Application.EnableVisualStyles();
       Application.Run(new Form1());
   }

}

 </source>


MonthCalendar.CalendarDimensions

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms; public class Calendar : Form {

 MonthCalendar mc;
 DateTimePicker dtpStart;    
 DateTimePicker dtpEnd;    
 DateTimePicker dtpBold;    
 Label lblStart;
 Label lblEnd;
 Label lblStartDay;
 Label lblBold;
 ComboBox cmbStart;
 Button btnBoldDay;
 Button btnBoldMonthly;
 Button btnBoldAnnually;
 public Calendar()
 {
   Size = new Size(650,450);
   this.Load += new EventHandler(this_Load);
   mc = new MonthCalendar();
   mc.Parent = this;
   mc.Location = new Point(20,20);
   mc.Font = new Font("Times New Roman", 14);
   mc.CalendarDimensions = new Size(2,1);
   mc.FirstDayOfWeek = Day.Monday;
   mc.MaxSelectionCount = 45;
   mc.DateChanged += new DateRangeEventHandler(mc_DateChanged);
   mc.DateSelected += new DateRangeEventHandler(mc_DateSelected);
   lblStart = new Label();
   lblStart.Parent = this;
   lblStart.Text = "Start Date:";
   
   dtpStart = new DateTimePicker();
   dtpStart.Parent = this;
   dtpStart.Size = new Size((int)(Font.Height * .6) * 
             dtpStart.Value.ToString("D").Length,
             dtpStart.PreferredHeight);
   dtpStart.Format = DateTimePickerFormat.Long;
   dtpStart.ShowUpDown = true;
   dtpStart.ValueChanged += new EventHandler(dtpStart_ValueChanged);
   lblEnd = new Label();
   lblEnd.Parent = this;
   lblEnd.Text = "End Date:";
   
   dtpEnd = new DateTimePicker();
   dtpEnd.Parent = this;
   dtpEnd.Size = new Size((int)(Font.Height * .6) * 
             dtpEnd.Value.ToString("D").Length,
             dtpEnd.PreferredHeight);
   dtpEnd.Format = DateTimePickerFormat.Long;
   dtpEnd.ShowUpDown = true;
   dtpEnd.ValueChanged += new EventHandler(dtpEnd_ValueChanged);
       
   lblStartDay = new Label();
   lblStartDay.Parent = this;
   lblStartDay.Text = "Start Day:";
   
   cmbStart = new ComboBox();
   cmbStart.Parent = this;
   cmbStart.DropDownStyle = ComboBoxStyle.DropDownList;
   cmbStart.Items.AddRange(new object[] {"Monday", 
                     "Tuesday", 
                     "Wednesday", 
                     "Thursday", 
                     "Friday", 
                     "Saturday", 
                     "Sunday"});
   cmbStart.SelectedIndex = 0;
   cmbStart.SelectedIndexChanged += new EventHandler(cmbStart_SelectedIndexChanged);
   
   lblBold = new Label();
   lblBold.Parent = this;
   lblBold.Text = "Bold Day:";
   
   dtpBold = new DateTimePicker();
   dtpBold.Parent = this;
   dtpBold.Size = new Size((int)(Font.Height ) * 
             dtpBold.Value.ToString("d").Length,
             dtpBold.PreferredHeight);
   dtpBold.Format = DateTimePickerFormat.Short;
   dtpBold.ShowUpDown = true;
   
   btnBoldDay = new Button();
   btnBoldDay.Parent = this;
   btnBoldDay.Text = "Add Bold Day";
   btnBoldDay.Size = new Size((int)(Font.Height * .6) * 
               btnBoldDay.Text.Length,
               (int)(Font.Height * 1.75));
   btnBoldDay.Click += new EventHandler(btnBoldDay_Click);
   
   btnBoldMonthly = new Button();
   btnBoldMonthly.Parent = this;
   btnBoldMonthly.Text = "Add Bold Day Monthly";
   btnBoldMonthly.Size = new Size((int)(Font.Height * .6) * 
                 btnBoldMonthly.Text.Length,
                 (int)(Font.Height * 1.75));
   btnBoldMonthly.Click += new EventHandler(btnBoldMonthly_Click);
   btnBoldAnnually = new Button();
   btnBoldAnnually.Parent = this;
   btnBoldAnnually.Text = "Add Bold Day Annually";
   btnBoldAnnually.Size = new Size((int)(Font.Height * .6) * 
                   btnBoldAnnually.Text.Length,
                   (int)(Font.Height * 1.75));
   btnBoldAnnually.Click += new EventHandler(btnBoldAnnually_Click);
 }
 static void Main() 
 {
   Application.Run(new Calendar());
 }
 private void this_Load(object sender, EventArgs e)
 {
   lblStart.Location = new Point(mc.Left, mc.Bottom + 10);
   dtpStart.Location = new Point(lblStart.Right, mc.Bottom + 10);
   lblEnd.Location = new Point(mc.Left, lblStart.Bottom + 5);
   dtpEnd.Location = new Point(lblStart.Right, lblStart.Bottom + 5);
   
   lblStartDay.Location = new Point(mc.Left, lblEnd.Bottom + 5);
   cmbStart.Location = new Point(lblStart.Right, lblEnd.Bottom + 5);
   lblBold.Location = new Point(mc.Left, lblStartDay.Bottom + 5);
   dtpBold.Location = new Point(lblBold.Right, 
                 lblStartDay.Bottom + 5);
   
   btnBoldDay.Location = new Point(dtpBold.Right + 10, dtpBold.Top);
   btnBoldMonthly.Location = new Point(btnBoldDay.Right, 
                     dtpBold.Top);
   btnBoldAnnually.Location = new Point(btnBoldMonthly.Right, 
                     dtpBold.Top);
 }
 private void dtpStart_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionStart = dtpStart.Value;
 }    
 private void dtpEnd_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionEnd = dtpEnd.Value;
 }    
 private void mc_DateChanged(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateChanged");
   dtpStart.Value = e.Start;
   dtpEnd.Value = e.End;
 }
 private void mc_DateSelected(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateSelected");
 }
 private void cmbStart_SelectedIndexChanged(object sender, 
                       EventArgs e)
 {
   mc.FirstDayOfWeek = (Day)cmbStart.SelectedIndex;
 }
 private void btnBoldDay_Click(object sender, EventArgs e)
 {
   mc.AddBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldMonthly_Click(object sender, EventArgs e)
 {
   mc.AddMonthlyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldAnnually_Click(object sender, EventArgs e)
 {
   mc.AddAnnuallyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }

}

 </source>


MonthCalendar.DateChanged

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms; public class Calendar : Form {

 MonthCalendar mc;
 DateTimePicker dtpStart;    
 DateTimePicker dtpEnd;    
 DateTimePicker dtpBold;    
 Label lblStart;
 Label lblEnd;
 Label lblStartDay;
 Label lblBold;
 ComboBox cmbStart;
 Button btnBoldDay;
 Button btnBoldMonthly;
 Button btnBoldAnnually;
 public Calendar()
 {
   Size = new Size(650,450);
   this.Load += new EventHandler(this_Load);
   mc = new MonthCalendar();
   mc.Parent = this;
   mc.Location = new Point(20,20);
   mc.Font = new Font("Times New Roman", 14);
   mc.CalendarDimensions = new Size(2,1);
   mc.FirstDayOfWeek = Day.Monday;
   mc.MaxSelectionCount = 45;
   mc.DateChanged += new DateRangeEventHandler(mc_DateChanged);
   mc.DateSelected += new DateRangeEventHandler(mc_DateSelected);
   lblStart = new Label();
   lblStart.Parent = this;
   lblStart.Text = "Start Date:";
   
   dtpStart = new DateTimePicker();
   dtpStart.Parent = this;
   dtpStart.Size = new Size((int)(Font.Height * .6) * 
             dtpStart.Value.ToString("D").Length,
             dtpStart.PreferredHeight);
   dtpStart.Format = DateTimePickerFormat.Long;
   dtpStart.ShowUpDown = true;
   dtpStart.ValueChanged += new EventHandler(dtpStart_ValueChanged);
   lblEnd = new Label();
   lblEnd.Parent = this;
   lblEnd.Text = "End Date:";
   
   dtpEnd = new DateTimePicker();
   dtpEnd.Parent = this;
   dtpEnd.Size = new Size((int)(Font.Height * .6) * 
             dtpEnd.Value.ToString("D").Length,
             dtpEnd.PreferredHeight);
   dtpEnd.Format = DateTimePickerFormat.Long;
   dtpEnd.ShowUpDown = true;
   dtpEnd.ValueChanged += new EventHandler(dtpEnd_ValueChanged);
       
   lblStartDay = new Label();
   lblStartDay.Parent = this;
   lblStartDay.Text = "Start Day:";
   
   cmbStart = new ComboBox();
   cmbStart.Parent = this;
   cmbStart.DropDownStyle = ComboBoxStyle.DropDownList;
   cmbStart.Items.AddRange(new object[] {"Monday", 
                     "Tuesday", 
                     "Wednesday", 
                     "Thursday", 
                     "Friday", 
                     "Saturday", 
                     "Sunday"});
   cmbStart.SelectedIndex = 0;
   cmbStart.SelectedIndexChanged += new EventHandler(cmbStart_SelectedIndexChanged);
   
   lblBold = new Label();
   lblBold.Parent = this;
   lblBold.Text = "Bold Day:";
   
   dtpBold = new DateTimePicker();
   dtpBold.Parent = this;
   dtpBold.Size = new Size((int)(Font.Height ) * 
             dtpBold.Value.ToString("d").Length,
             dtpBold.PreferredHeight);
   dtpBold.Format = DateTimePickerFormat.Short;
   dtpBold.ShowUpDown = true;
   
   btnBoldDay = new Button();
   btnBoldDay.Parent = this;
   btnBoldDay.Text = "Add Bold Day";
   btnBoldDay.Size = new Size((int)(Font.Height * .6) * 
               btnBoldDay.Text.Length,
               (int)(Font.Height * 1.75));
   btnBoldDay.Click += new EventHandler(btnBoldDay_Click);
   
   btnBoldMonthly = new Button();
   btnBoldMonthly.Parent = this;
   btnBoldMonthly.Text = "Add Bold Day Monthly";
   btnBoldMonthly.Size = new Size((int)(Font.Height * .6) * 
                 btnBoldMonthly.Text.Length,
                 (int)(Font.Height * 1.75));
   btnBoldMonthly.Click += new EventHandler(btnBoldMonthly_Click);
   btnBoldAnnually = new Button();
   btnBoldAnnually.Parent = this;
   btnBoldAnnually.Text = "Add Bold Day Annually";
   btnBoldAnnually.Size = new Size((int)(Font.Height * .6) * 
                   btnBoldAnnually.Text.Length,
                   (int)(Font.Height * 1.75));
   btnBoldAnnually.Click += new EventHandler(btnBoldAnnually_Click);
 }
 static void Main() 
 {
   Application.Run(new Calendar());
 }
 private void this_Load(object sender, EventArgs e)
 {
   lblStart.Location = new Point(mc.Left, mc.Bottom + 10);
   dtpStart.Location = new Point(lblStart.Right, mc.Bottom + 10);
   lblEnd.Location = new Point(mc.Left, lblStart.Bottom + 5);
   dtpEnd.Location = new Point(lblStart.Right, lblStart.Bottom + 5);
   
   lblStartDay.Location = new Point(mc.Left, lblEnd.Bottom + 5);
   cmbStart.Location = new Point(lblStart.Right, lblEnd.Bottom + 5);
   lblBold.Location = new Point(mc.Left, lblStartDay.Bottom + 5);
   dtpBold.Location = new Point(lblBold.Right, 
                 lblStartDay.Bottom + 5);
   
   btnBoldDay.Location = new Point(dtpBold.Right + 10, dtpBold.Top);
   btnBoldMonthly.Location = new Point(btnBoldDay.Right, 
                     dtpBold.Top);
   btnBoldAnnually.Location = new Point(btnBoldMonthly.Right, 
                     dtpBold.Top);
 }
 private void dtpStart_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionStart = dtpStart.Value;
 }    
 private void dtpEnd_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionEnd = dtpEnd.Value;
 }    
 private void mc_DateChanged(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateChanged");
   dtpStart.Value = e.Start;
   dtpEnd.Value = e.End;
 }
 private void mc_DateSelected(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateSelected");
 }
 private void cmbStart_SelectedIndexChanged(object sender, 
                       EventArgs e)
 {
   mc.FirstDayOfWeek = (Day)cmbStart.SelectedIndex;
 }
 private void btnBoldDay_Click(object sender, EventArgs e)
 {
   mc.AddBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldMonthly_Click(object sender, EventArgs e)
 {
   mc.AddMonthlyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldAnnually_Click(object sender, EventArgs e)
 {
   mc.AddAnnuallyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }

}

 </source>


MonthCalendar.DateSelected

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms; public class Calendar : Form {

 MonthCalendar mc;
 DateTimePicker dtpStart;    
 DateTimePicker dtpEnd;    
 DateTimePicker dtpBold;    
 Label lblStart;
 Label lblEnd;
 Label lblStartDay;
 Label lblBold;
 ComboBox cmbStart;
 Button btnBoldDay;
 Button btnBoldMonthly;
 Button btnBoldAnnually;
 public Calendar()
 {
   Size = new Size(650,450);
   this.Load += new EventHandler(this_Load);
   mc = new MonthCalendar();
   mc.Parent = this;
   mc.Location = new Point(20,20);
   mc.Font = new Font("Times New Roman", 14);
   mc.CalendarDimensions = new Size(2,1);
   mc.FirstDayOfWeek = Day.Monday;
   mc.MaxSelectionCount = 45;
   mc.DateChanged += new DateRangeEventHandler(mc_DateChanged);
   mc.DateSelected += new DateRangeEventHandler(mc_DateSelected);
   lblStart = new Label();
   lblStart.Parent = this;
   lblStart.Text = "Start Date:";
   
   dtpStart = new DateTimePicker();
   dtpStart.Parent = this;
   dtpStart.Size = new Size((int)(Font.Height * .6) * 
             dtpStart.Value.ToString("D").Length,
             dtpStart.PreferredHeight);
   dtpStart.Format = DateTimePickerFormat.Long;
   dtpStart.ShowUpDown = true;
   dtpStart.ValueChanged += new EventHandler(dtpStart_ValueChanged);
   lblEnd = new Label();
   lblEnd.Parent = this;
   lblEnd.Text = "End Date:";
   
   dtpEnd = new DateTimePicker();
   dtpEnd.Parent = this;
   dtpEnd.Size = new Size((int)(Font.Height * .6) * 
             dtpEnd.Value.ToString("D").Length,
             dtpEnd.PreferredHeight);
   dtpEnd.Format = DateTimePickerFormat.Long;
   dtpEnd.ShowUpDown = true;
   dtpEnd.ValueChanged += new EventHandler(dtpEnd_ValueChanged);
       
   lblStartDay = new Label();
   lblStartDay.Parent = this;
   lblStartDay.Text = "Start Day:";
   
   cmbStart = new ComboBox();
   cmbStart.Parent = this;
   cmbStart.DropDownStyle = ComboBoxStyle.DropDownList;
   cmbStart.Items.AddRange(new object[] {"Monday", 
                     "Tuesday", 
                     "Wednesday", 
                     "Thursday", 
                     "Friday", 
                     "Saturday", 
                     "Sunday"});
   cmbStart.SelectedIndex = 0;
   cmbStart.SelectedIndexChanged += new EventHandler(cmbStart_SelectedIndexChanged);
   
   lblBold = new Label();
   lblBold.Parent = this;
   lblBold.Text = "Bold Day:";
   
   dtpBold = new DateTimePicker();
   dtpBold.Parent = this;
   dtpBold.Size = new Size((int)(Font.Height ) * 
             dtpBold.Value.ToString("d").Length,
             dtpBold.PreferredHeight);
   dtpBold.Format = DateTimePickerFormat.Short;
   dtpBold.ShowUpDown = true;
   
   btnBoldDay = new Button();
   btnBoldDay.Parent = this;
   btnBoldDay.Text = "Add Bold Day";
   btnBoldDay.Size = new Size((int)(Font.Height * .6) * 
               btnBoldDay.Text.Length,
               (int)(Font.Height * 1.75));
   btnBoldDay.Click += new EventHandler(btnBoldDay_Click);
   
   btnBoldMonthly = new Button();
   btnBoldMonthly.Parent = this;
   btnBoldMonthly.Text = "Add Bold Day Monthly";
   btnBoldMonthly.Size = new Size((int)(Font.Height * .6) * 
                 btnBoldMonthly.Text.Length,
                 (int)(Font.Height * 1.75));
   btnBoldMonthly.Click += new EventHandler(btnBoldMonthly_Click);
   btnBoldAnnually = new Button();
   btnBoldAnnually.Parent = this;
   btnBoldAnnually.Text = "Add Bold Day Annually";
   btnBoldAnnually.Size = new Size((int)(Font.Height * .6) * 
                   btnBoldAnnually.Text.Length,
                   (int)(Font.Height * 1.75));
   btnBoldAnnually.Click += new EventHandler(btnBoldAnnually_Click);
 }
 static void Main() 
 {
   Application.Run(new Calendar());
 }
 private void this_Load(object sender, EventArgs e)
 {
   lblStart.Location = new Point(mc.Left, mc.Bottom + 10);
   dtpStart.Location = new Point(lblStart.Right, mc.Bottom + 10);
   lblEnd.Location = new Point(mc.Left, lblStart.Bottom + 5);
   dtpEnd.Location = new Point(lblStart.Right, lblStart.Bottom + 5);
   
   lblStartDay.Location = new Point(mc.Left, lblEnd.Bottom + 5);
   cmbStart.Location = new Point(lblStart.Right, lblEnd.Bottom + 5);
   lblBold.Location = new Point(mc.Left, lblStartDay.Bottom + 5);
   dtpBold.Location = new Point(lblBold.Right, 
                 lblStartDay.Bottom + 5);
   
   btnBoldDay.Location = new Point(dtpBold.Right + 10, dtpBold.Top);
   btnBoldMonthly.Location = new Point(btnBoldDay.Right, 
                     dtpBold.Top);
   btnBoldAnnually.Location = new Point(btnBoldMonthly.Right, 
                     dtpBold.Top);
 }
 private void dtpStart_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionStart = dtpStart.Value;
 }    
 private void dtpEnd_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionEnd = dtpEnd.Value;
 }    
 private void mc_DateChanged(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateChanged");
   dtpStart.Value = e.Start;
   dtpEnd.Value = e.End;
 }
 private void mc_DateSelected(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateSelected");
 }
 private void cmbStart_SelectedIndexChanged(object sender, 
                       EventArgs e)
 {
   mc.FirstDayOfWeek = (Day)cmbStart.SelectedIndex;
 }
 private void btnBoldDay_Click(object sender, EventArgs e)
 {
   mc.AddBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldMonthly_Click(object sender, EventArgs e)
 {
   mc.AddMonthlyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldAnnually_Click(object sender, EventArgs e)
 {
   mc.AddAnnuallyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }

}

 </source>


MonthCalendar.FirstDayOfWeek

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms; public class Calendar : Form {

 MonthCalendar mc;
 DateTimePicker dtpStart;    
 DateTimePicker dtpEnd;    
 DateTimePicker dtpBold;    
 Label lblStart;
 Label lblEnd;
 Label lblStartDay;
 Label lblBold;
 ComboBox cmbStart;
 Button btnBoldDay;
 Button btnBoldMonthly;
 Button btnBoldAnnually;
 public Calendar()
 {
   Size = new Size(650,450);
   this.Load += new EventHandler(this_Load);
   mc = new MonthCalendar();
   mc.Parent = this;
   mc.Location = new Point(20,20);
   mc.Font = new Font("Times New Roman", 14);
   mc.CalendarDimensions = new Size(2,1);
   mc.FirstDayOfWeek = Day.Monday;
   mc.MaxSelectionCount = 45;
   mc.DateChanged += new DateRangeEventHandler(mc_DateChanged);
   mc.DateSelected += new DateRangeEventHandler(mc_DateSelected);
   lblStart = new Label();
   lblStart.Parent = this;
   lblStart.Text = "Start Date:";
   
   dtpStart = new DateTimePicker();
   dtpStart.Parent = this;
   dtpStart.Size = new Size((int)(Font.Height * .6) * 
             dtpStart.Value.ToString("D").Length,
             dtpStart.PreferredHeight);
   dtpStart.Format = DateTimePickerFormat.Long;
   dtpStart.ShowUpDown = true;
   dtpStart.ValueChanged += new EventHandler(dtpStart_ValueChanged);
   lblEnd = new Label();
   lblEnd.Parent = this;
   lblEnd.Text = "End Date:";
   
   dtpEnd = new DateTimePicker();
   dtpEnd.Parent = this;
   dtpEnd.Size = new Size((int)(Font.Height * .6) * 
             dtpEnd.Value.ToString("D").Length,
             dtpEnd.PreferredHeight);
   dtpEnd.Format = DateTimePickerFormat.Long;
   dtpEnd.ShowUpDown = true;
   dtpEnd.ValueChanged += new EventHandler(dtpEnd_ValueChanged);
       
   lblStartDay = new Label();
   lblStartDay.Parent = this;
   lblStartDay.Text = "Start Day:";
   
   cmbStart = new ComboBox();
   cmbStart.Parent = this;
   cmbStart.DropDownStyle = ComboBoxStyle.DropDownList;
   cmbStart.Items.AddRange(new object[] {"Monday", 
                     "Tuesday", 
                     "Wednesday", 
                     "Thursday", 
                     "Friday", 
                     "Saturday", 
                     "Sunday"});
   cmbStart.SelectedIndex = 0;
   cmbStart.SelectedIndexChanged += new EventHandler(cmbStart_SelectedIndexChanged);
   
   lblBold = new Label();
   lblBold.Parent = this;
   lblBold.Text = "Bold Day:";
   
   dtpBold = new DateTimePicker();
   dtpBold.Parent = this;
   dtpBold.Size = new Size((int)(Font.Height ) * 
             dtpBold.Value.ToString("d").Length,
             dtpBold.PreferredHeight);
   dtpBold.Format = DateTimePickerFormat.Short;
   dtpBold.ShowUpDown = true;
   
   btnBoldDay = new Button();
   btnBoldDay.Parent = this;
   btnBoldDay.Text = "Add Bold Day";
   btnBoldDay.Size = new Size((int)(Font.Height * .6) * 
               btnBoldDay.Text.Length,
               (int)(Font.Height * 1.75));
   btnBoldDay.Click += new EventHandler(btnBoldDay_Click);
   
   btnBoldMonthly = new Button();
   btnBoldMonthly.Parent = this;
   btnBoldMonthly.Text = "Add Bold Day Monthly";
   btnBoldMonthly.Size = new Size((int)(Font.Height * .6) * 
                 btnBoldMonthly.Text.Length,
                 (int)(Font.Height * 1.75));
   btnBoldMonthly.Click += new EventHandler(btnBoldMonthly_Click);
   btnBoldAnnually = new Button();
   btnBoldAnnually.Parent = this;
   btnBoldAnnually.Text = "Add Bold Day Annually";
   btnBoldAnnually.Size = new Size((int)(Font.Height * .6) * 
                   btnBoldAnnually.Text.Length,
                   (int)(Font.Height * 1.75));
   btnBoldAnnually.Click += new EventHandler(btnBoldAnnually_Click);
 }
 static void Main() 
 {
   Application.Run(new Calendar());
 }
 private void this_Load(object sender, EventArgs e)
 {
   lblStart.Location = new Point(mc.Left, mc.Bottom + 10);
   dtpStart.Location = new Point(lblStart.Right, mc.Bottom + 10);
   lblEnd.Location = new Point(mc.Left, lblStart.Bottom + 5);
   dtpEnd.Location = new Point(lblStart.Right, lblStart.Bottom + 5);
   
   lblStartDay.Location = new Point(mc.Left, lblEnd.Bottom + 5);
   cmbStart.Location = new Point(lblStart.Right, lblEnd.Bottom + 5);
   lblBold.Location = new Point(mc.Left, lblStartDay.Bottom + 5);
   dtpBold.Location = new Point(lblBold.Right, 
                 lblStartDay.Bottom + 5);
   
   btnBoldDay.Location = new Point(dtpBold.Right + 10, dtpBold.Top);
   btnBoldMonthly.Location = new Point(btnBoldDay.Right, 
                     dtpBold.Top);
   btnBoldAnnually.Location = new Point(btnBoldMonthly.Right, 
                     dtpBold.Top);
 }
 private void dtpStart_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionStart = dtpStart.Value;
 }    
 private void dtpEnd_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionEnd = dtpEnd.Value;
 }    
 private void mc_DateChanged(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateChanged");
   dtpStart.Value = e.Start;
   dtpEnd.Value = e.End;
 }
 private void mc_DateSelected(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateSelected");
 }
 private void cmbStart_SelectedIndexChanged(object sender, 
                       EventArgs e)
 {
   mc.FirstDayOfWeek = (Day)cmbStart.SelectedIndex;
 }
 private void btnBoldDay_Click(object sender, EventArgs e)
 {
   mc.AddBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldMonthly_Click(object sender, EventArgs e)
 {
   mc.AddMonthlyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldAnnually_Click(object sender, EventArgs e)
 {
   mc.AddAnnuallyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }

}

 </source>


MonthCalendar.MaxSelectionCount

<source lang="csharp">

using System; using System.Drawing; using System.Windows.Forms; public class Calendar : Form {

 MonthCalendar mc;
 DateTimePicker dtpStart;    
 DateTimePicker dtpEnd;    
 DateTimePicker dtpBold;    
 Label lblStart;
 Label lblEnd;
 Label lblStartDay;
 Label lblBold;
 ComboBox cmbStart;
 Button btnBoldDay;
 Button btnBoldMonthly;
 Button btnBoldAnnually;
 public Calendar()
 {
   Size = new Size(650,450);
   this.Load += new EventHandler(this_Load);
   mc = new MonthCalendar();
   mc.Parent = this;
   mc.Location = new Point(20,20);
   mc.Font = new Font("Times New Roman", 14);
   mc.CalendarDimensions = new Size(2,1);
   mc.FirstDayOfWeek = Day.Monday;
   mc.MaxSelectionCount = 45;
   mc.DateChanged += new DateRangeEventHandler(mc_DateChanged);
   mc.DateSelected += new DateRangeEventHandler(mc_DateSelected);
   lblStart = new Label();
   lblStart.Parent = this;
   lblStart.Text = "Start Date:";
   
   dtpStart = new DateTimePicker();
   dtpStart.Parent = this;
   dtpStart.Size = new Size((int)(Font.Height * .6) * 
             dtpStart.Value.ToString("D").Length,
             dtpStart.PreferredHeight);
   dtpStart.Format = DateTimePickerFormat.Long;
   dtpStart.ShowUpDown = true;
   dtpStart.ValueChanged += new EventHandler(dtpStart_ValueChanged);
   lblEnd = new Label();
   lblEnd.Parent = this;
   lblEnd.Text = "End Date:";
   
   dtpEnd = new DateTimePicker();
   dtpEnd.Parent = this;
   dtpEnd.Size = new Size((int)(Font.Height * .6) * 
             dtpEnd.Value.ToString("D").Length,
             dtpEnd.PreferredHeight);
   dtpEnd.Format = DateTimePickerFormat.Long;
   dtpEnd.ShowUpDown = true;
   dtpEnd.ValueChanged += new EventHandler(dtpEnd_ValueChanged);
       
   lblStartDay = new Label();
   lblStartDay.Parent = this;
   lblStartDay.Text = "Start Day:";
   
   cmbStart = new ComboBox();
   cmbStart.Parent = this;
   cmbStart.DropDownStyle = ComboBoxStyle.DropDownList;
   cmbStart.Items.AddRange(new object[] {"Monday", 
                     "Tuesday", 
                     "Wednesday", 
                     "Thursday", 
                     "Friday", 
                     "Saturday", 
                     "Sunday"});
   cmbStart.SelectedIndex = 0;
   cmbStart.SelectedIndexChanged += new EventHandler(cmbStart_SelectedIndexChanged);
   
   lblBold = new Label();
   lblBold.Parent = this;
   lblBold.Text = "Bold Day:";
   
   dtpBold = new DateTimePicker();
   dtpBold.Parent = this;
   dtpBold.Size = new Size((int)(Font.Height ) * 
             dtpBold.Value.ToString("d").Length,
             dtpBold.PreferredHeight);
   dtpBold.Format = DateTimePickerFormat.Short;
   dtpBold.ShowUpDown = true;
   
   btnBoldDay = new Button();
   btnBoldDay.Parent = this;
   btnBoldDay.Text = "Add Bold Day";
   btnBoldDay.Size = new Size((int)(Font.Height * .6) * 
               btnBoldDay.Text.Length,
               (int)(Font.Height * 1.75));
   btnBoldDay.Click += new EventHandler(btnBoldDay_Click);
   
   btnBoldMonthly = new Button();
   btnBoldMonthly.Parent = this;
   btnBoldMonthly.Text = "Add Bold Day Monthly";
   btnBoldMonthly.Size = new Size((int)(Font.Height * .6) * 
                 btnBoldMonthly.Text.Length,
                 (int)(Font.Height * 1.75));
   btnBoldMonthly.Click += new EventHandler(btnBoldMonthly_Click);
   btnBoldAnnually = new Button();
   btnBoldAnnually.Parent = this;
   btnBoldAnnually.Text = "Add Bold Day Annually";
   btnBoldAnnually.Size = new Size((int)(Font.Height * .6) * 
                   btnBoldAnnually.Text.Length,
                   (int)(Font.Height * 1.75));
   btnBoldAnnually.Click += new EventHandler(btnBoldAnnually_Click);
 }
 static void Main() 
 {
   Application.Run(new Calendar());
 }
 private void this_Load(object sender, EventArgs e)
 {
   lblStart.Location = new Point(mc.Left, mc.Bottom + 10);
   dtpStart.Location = new Point(lblStart.Right, mc.Bottom + 10);
   lblEnd.Location = new Point(mc.Left, lblStart.Bottom + 5);
   dtpEnd.Location = new Point(lblStart.Right, lblStart.Bottom + 5);
   
   lblStartDay.Location = new Point(mc.Left, lblEnd.Bottom + 5);
   cmbStart.Location = new Point(lblStart.Right, lblEnd.Bottom + 5);
   lblBold.Location = new Point(mc.Left, lblStartDay.Bottom + 5);
   dtpBold.Location = new Point(lblBold.Right, 
                 lblStartDay.Bottom + 5);
   
   btnBoldDay.Location = new Point(dtpBold.Right + 10, dtpBold.Top);
   btnBoldMonthly.Location = new Point(btnBoldDay.Right, 
                     dtpBold.Top);
   btnBoldAnnually.Location = new Point(btnBoldMonthly.Right, 
                     dtpBold.Top);
 }
 private void dtpStart_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionStart = dtpStart.Value;
 }    
 private void dtpEnd_ValueChanged(object sender, EventArgs e)
 {
   mc.SelectionEnd = dtpEnd.Value;
 }    
 private void mc_DateChanged(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateChanged");
   dtpStart.Value = e.Start;
   dtpEnd.Value = e.End;
 }
 private void mc_DateSelected(object sender, DateRangeEventArgs e)
 {
   MessageBox.Show("DateSelected");
 }
 private void cmbStart_SelectedIndexChanged(object sender, 
                       EventArgs e)
 {
   mc.FirstDayOfWeek = (Day)cmbStart.SelectedIndex;
 }
 private void btnBoldDay_Click(object sender, EventArgs e)
 {
   mc.AddBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldMonthly_Click(object sender, EventArgs e)
 {
   mc.AddMonthlyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }
 private void btnBoldAnnually_Click(object sender, EventArgs e)
 {
   mc.AddAnnuallyBoldedDate(dtpBold.Value);
   mc.UpdateBoldedDates();
 }

}

 </source>


new MonthCalendar()

<source lang="csharp"> using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data;

   public class Calendar : System.Windows.Forms.Form
   {
       private System.Windows.Forms.MonthCalendar monthCalendar1;
       private System.Windows.Forms.Button button1;
       private System.ruponentModel.Container components = null;
       public Calendar()
       {
           InitializeComponent();
       }
       private void InitializeComponent()
       {
        this.monthCalendar1 = new System.Windows.Forms.MonthCalendar();
        this.button1 = new System.Windows.Forms.Button();
        this.SuspendLayout();
        // 
        // monthCalendar1
        // 
        this.monthCalendar1.FirstDayOfWeek = System.Windows.Forms.Day.Thursday;
        this.monthCalendar1.Location = new System.Drawing.Point(16, 16);
        this.monthCalendar1.Name = "monthCalendar1";
        this.monthCalendar1.ShowTodayCircle = false;
        this.monthCalendar1.ShowWeekNumbers = true;
        this.monthCalendar1.TabIndex = 0;
        // 
        // button1
        // 
        this.button1.Location = new System.Drawing.Point(48, 184);
        this.button1.Name = "button1";
        this.button1.Size = new System.Drawing.Size(128, 23);
        this.button1.TabIndex = 1;
        this.button1.Text = "Selection Range";
        this.button1.Click += new System.EventHandler(this.button1_Click_1);
        // 
        // Calendar
        // 
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(232, 213);
        this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                     this.button1,
                                                                     this.monthCalendar1});
        this.Name = "Calendar";
        this.Text = "Calendar Control";
        this.Load += new System.EventHandler(this.Calendar_Load);
        this.ResumeLayout(false);
     }
       [STAThread]
       static void Main() 
       {
           Application.Run(new Calendar());
       }
       private void Calendar_Load(object sender, System.EventArgs e)
       {
           string str = monthCalendar1.Text.ToString()  ; 
       }
       private void button1_Click(object sender, System.EventArgs e)
       {
       }
       private void button1_Click_1(object sender, System.EventArgs e)
       {
           // Get the selection Range.  
           SelectionRange sr = monthCalendar1.SelectionRange;
           // Get the start of Range.
           DateTime st = sr.Start;
           // Get the end of Range.
           DateTime se = sr.End ; 
           MessageBox.Show("RANGE START = " + st.ToString() + "\nRANGE END = " + se.ToString(), "Range Selection");
   
       }
   }


 </source>