Csharp/CSharp Tutorial/GUI Windows Forms/DateTimePicker
DateTimePicker custom format
<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class Form1 : System.Windows.Forms.Form {
private System.Windows.Forms.DateTimePicker dateTimePicker1; private System.Windows.Forms.DateTimePicker dateTimePicker2; private System.Windows.Forms.DateTimePicker dateTimePicker3; private System.Windows.Forms.DateTimePicker dateTimePicker4; private System.Windows.Forms.DateTimePicker dateTimePicker5; private System.Windows.Forms.DateTimePicker dateTimePicker6; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label7; public Form1() { this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker2 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker3 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker4 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker5 = new System.Windows.Forms.DateTimePicker(); this.dateTimePicker6 = new System.Windows.Forms.DateTimePicker(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label7 = new System.Windows.Forms.Label(); this.SuspendLayout(); // // dateTimePicker1 // this.dateTimePicker1.CustomFormat = "hh:mm:s : MM/dd/yy"; this.dateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom; this.dateTimePicker1.Location = new System.Drawing.Point(16, 16); this.dateTimePicker1.Name = "dateTimePicker1"; this.dateTimePicker1.Size = new System.Drawing.Size(240, 20); this.dateTimePicker1.TabIndex = 0; // // dateTimePicker2 // this.dateTimePicker2.CustomFormat = "h/mm/ss : dd.MM.yyyy"; this.dateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Custom; this.dateTimePicker2.Location = new System.Drawing.Point(16, 56); this.dateTimePicker2.Name = "dateTimePicker2"; this.dateTimePicker2.Size = new System.Drawing.Size(240, 20); this.dateTimePicker2.TabIndex = 0; // // dateTimePicker3 // this.dateTimePicker3.CustomFormat = "HH-mm-ss : MMMM/dd/yyyy tt"; this.dateTimePicker3.Format = System.Windows.Forms.DateTimePickerFormat.Custom; this.dateTimePicker3.Location = new System.Drawing.Point(16, 88); this.dateTimePicker3.Name = "dateTimePicker3"; this.dateTimePicker3.Size = new System.Drawing.Size(240, 20); this.dateTimePicker3.TabIndex = 0; // // dateTimePicker4 // this.dateTimePicker4.CustomFormat = "tt hh/mm/ss : dddd.MMMM.yyyy"; this.dateTimePicker4.Format = System.Windows.Forms.DateTimePickerFormat.Custom; this.dateTimePicker4.Location = new System.Drawing.Point(16, 200); this.dateTimePicker4.Name = "dateTimePicker4"; this.dateTimePicker4.Size = new System.Drawing.Size(240, 20); this.dateTimePicker4.TabIndex = 0; // // dateTimePicker5 // this.dateTimePicker5.CustomFormat = "HH/mm/ss : ddd-MM-yy"; this.dateTimePicker5.Format = System.Windows.Forms.DateTimePickerFormat.Custom; this.dateTimePicker5.Location = new System.Drawing.Point(16, 160); this.dateTimePicker5.Name = "dateTimePicker5"; this.dateTimePicker5.Size = new System.Drawing.Size(240, 20); this.dateTimePicker5.TabIndex = 0; // // dateTimePicker6 // this.dateTimePicker6.CustomFormat = "hh/mm/ss : dddd MMMM yyyy tt"; this.dateTimePicker6.Format = System.Windows.Forms.DateTimePickerFormat.Custom; this.dateTimePicker6.Location = new System.Drawing.Point(16, 128); this.dateTimePicker6.Name = "dateTimePicker6"; this.dateTimePicker6.Size = new System.Drawing.Size(240, 20); this.dateTimePicker6.TabIndex = 0; this.dateTimePicker6.Value = new System.DateTime(2002, 5, 14, 14, 28, 0, 0); // // label1 // this.label1.Font = new System.Drawing.Font("Courier New", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label1.Location = new System.Drawing.Point(264, 16); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(352, 23); this.label1.TabIndex = 1; this.label1.Text = "Format : hh:mm:ss : MM/dd/yy"; // // label2 // this.label2.Font = new System.Drawing.Font("Courier New", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label2.Location = new System.Drawing.Point(264, 56); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(352, 23); this.label2.TabIndex = 2; this.label2.Text = "Format : h/mm/ss : dd.MM.yyyy"; // // label3 // this.label3.Font = new System.Drawing.Font("Courier New", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label3.Location = new System.Drawing.Point(264, 88); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(352, 23); this.label3.TabIndex = 3; this.label3.Text = "Format : HH-mm-ss : MMMM/dd/yyyy tt"; // // label4 // this.label4.Font = new System.Drawing.Font("Courier New", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label4.Location = new System.Drawing.Point(264, 160); this.label4.Name = "label4"; this.label4.RightToLeft = System.Windows.Forms.RightToLeft.No; this.label4.Size = new System.Drawing.Size(352, 23); this.label4.TabIndex = 5; this.label4.Text = "Format : HH/mm/ss : ddd-MM-yy"; // // label5 // this.label5.Font = new System.Drawing.Font("Courier New", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label5.Location = new System.Drawing.Point(264, 128); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(352, 23); this.label5.TabIndex = 4; this.label5.Text = "Format : hh/mm/ss : dddd MMMM yyyy tt"; // // label7 // this.label7.Font = new System.Drawing.Font("Courier New", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); this.label7.Location = new System.Drawing.Point(264, 200); this.label7.Name = "label7"; this.label7.Size = new System.Drawing.Size(352, 23); this.label7.TabIndex = 6; this.label7.Text = "Format : tt hh/mm/ss : dddd.MMMM.yyyy"; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(632, 245); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.label7, this.label4, this.label5, this.label3, this.label2, this.label1, this.dateTimePicker1, this.dateTimePicker2, this.dateTimePicker3, this.dateTimePicker4, this.dateTimePicker5, this.dateTimePicker6}); this.Name = "Form1"; this.Text = "DateTime Formats"; this.Load += new System.EventHandler(this.Form1_Load); this.ResumeLayout(false); } [STAThread] static void Main() { Application.Run(new Form1()); } private void Form1_Load(object sender, System.EventArgs e) { }
}</source>
DateTimePicker Event and selected value
<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>
DateTimePicker: look and feel and data format
<source lang="csharp">using System; using System.Drawing; using System.Windows.Forms; public class DTPicker : Form {
DateTimePicker dtp; public DTPicker() { Size = new Size(400,300); this.Load += new EventHandler(this_Load); dtp = new DateTimePicker(); dtp.Parent = this; dtp.Location = new Point(20,20); dtp.Size = new Size(ClientSize.Width - 40, dtp.PreferredHeight); dtp.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; Font fnt = new Font("Times New Roman", 16); dtp.CalendarFont = new Font(fnt, FontStyle.Bold | FontStyle.Italic); dtp.CalendarForeColor = Color.Red; dtp.CalendarMonthBackground = Color.Yellow; dtp.CalendarTitleBackColor = Color.Lime; dtp.CalendarTitleForeColor = Color.Blue; dtp.CalendarTrailingForeColor = Color.FromArgb(255,192,192); dtp.CustomFormat = "dddd,MMMM d, yyyy "at" h:mm:ss tt"; dtp.Format = DateTimePickerFormat.Custom; dtp.DropDownAlign = LeftRightAlignment.Right; dtp.ShowUpDown = false; // default dtp.ValueChanged += new EventHandler(dtp_ValueChanged); } static void Main() { Application.Run(new DTPicker()); } private void UpdateLabels() { Console.WriteLine( dtp.Value.ToString() ); Console.WriteLine( dtp.Value.ToLongDateString() ); Console.WriteLine( dtp.Value.ToLongTimeString() ); Console.WriteLine( dtp.Value.ToShortDateString() ); Console.WriteLine( dtp.Value.ToShortTimeString() ); } private void this_Load(object sender, EventArgs e) { UpdateLabels(); } private void dtp_ValueChanged(object sender, EventArgs e) { UpdateLabels(); } private void txtCustomString_TextChanged(object sender, EventArgs e) { UpdateLabels(); }
}</source>