Category / Section
How to increment or decrement the date in WinForms DateTimePicker (DateTimePickerAdv) using up or down arrow keys?
1 min read
It is possible to add custom LegendItem to the Legend instead of the automated Legend items. For this we have to use the event Legend.FilterItems of the chartControl. This event is raised before the legend items are rendered.
Here is the code snippet.
C#
private void Legend_FilterItems(object sender, ChartLegendFilterItemsEventArgs e) { e.Items.Clear(); ChartLegendItemsCollection item = new ChartLegendItemsCollection(); LegendItem l = new LegendItem(); LegendItem l1 = new LegendItem(); l.ItemStyle.BorderColor=Color.Black; l.Text="Test1"; l1.ItemStyle.BorderColor = Color.Blue; l1.Text = "Test2"; item.Add(l); item.Add(l1); e.Items = item; }
Please refer the sample that illustrates this: ChartLegend
Increment or decrement the date
Using up/down arrow keys we can increment/decrement the date. This can be acheived by overriding ProcessCmdKey() method of DateTimePickerAdv.
C#
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) { if (keyData == System.Windows.Forms.Keys.Up) { this.Value = this.Value.AddDays(1); return true; } else if (keyData == System.Windows.Forms.Keys.Down) { this.Value = this.Value.AddDays(-1); return true; } else { return base.ProcessCmdKey(ref msg, keyData); } }
VB
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean If keyData = System.Windows.Forms.Keys.Up Then Me.Value = Me.Value.AddDays(1) Return True ElseIf keyData = System.Windows.Forms.Keys.Down Then Me.Value = Me.Value.AddDays(-1) Return True Else Return MyBase.ProcessCmdKey(msg, keyData) End If End Function
Sample: