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();
}
}