Csharp/C Sharp by API/System.Windows.Forms/MonthCalendar
Содержание
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>