* UIDatePicker,UIDateTimePicker:增加ShowToday显示今日属性

This commit is contained in:
Sunny 2021-04-15 15:53:39 +08:00
parent 017b4f612a
commit 66735ac0f5
13 changed files with 235 additions and 147 deletions

8
Bin/net40/Setting.ini Normal file
View File

@ -0,0 +1,8 @@
;<!--配置文件-->
[Setup]
ImagePath=
TCPPort=0
APIPort=0
IP=111.1.1.1

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -28,54 +28,54 @@
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.TreeNode treeNode29 = new System.Windows.Forms.TreeNode("节点0");
System.Windows.Forms.TreeNode treeNode30 = new System.Windows.Forms.TreeNode("节点1");
System.Windows.Forms.TreeNode treeNode31 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode32 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode25 = new System.Windows.Forms.TreeNode("节点0");
System.Windows.Forms.TreeNode treeNode26 = new System.Windows.Forms.TreeNode("节点1");
System.Windows.Forms.TreeNode treeNode27 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode28 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("节点0");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("节点1");
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode5 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode1,
treeNode2,
treeNode3,
treeNode4});
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("节点4");
System.Windows.Forms.TreeNode treeNode7 = new System.Windows.Forms.TreeNode("节点5");
System.Windows.Forms.TreeNode treeNode8 = new System.Windows.Forms.TreeNode("节点6");
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("节点7");
System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode6,
treeNode7,
treeNode8,
treeNode9});
System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode12 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode13 = new System.Windows.Forms.TreeNode("节点00");
System.Windows.Forms.TreeNode treeNode14 = new System.Windows.Forms.TreeNode("节点01");
System.Windows.Forms.TreeNode treeNode15 = new System.Windows.Forms.TreeNode("节点02");
System.Windows.Forms.TreeNode treeNode16 = new System.Windows.Forms.TreeNode("节点03");
System.Windows.Forms.TreeNode treeNode17 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode13,
treeNode14,
treeNode15,
treeNode16});
System.Windows.Forms.TreeNode treeNode18 = new System.Windows.Forms.TreeNode("节点11");
System.Windows.Forms.TreeNode treeNode19 = new System.Windows.Forms.TreeNode("节点12");
System.Windows.Forms.TreeNode treeNode20 = new System.Windows.Forms.TreeNode("节点13");
System.Windows.Forms.TreeNode treeNode21 = new System.Windows.Forms.TreeNode("节点14");
System.Windows.Forms.TreeNode treeNode22 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode18,
treeNode19,
treeNode20,
treeNode21});
System.Windows.Forms.TreeNode treeNode23 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode24 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode61 = new System.Windows.Forms.TreeNode("节点0");
System.Windows.Forms.TreeNode treeNode62 = new System.Windows.Forms.TreeNode("节点1");
System.Windows.Forms.TreeNode treeNode63 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode64 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode57 = new System.Windows.Forms.TreeNode("节点0");
System.Windows.Forms.TreeNode treeNode58 = new System.Windows.Forms.TreeNode("节点1");
System.Windows.Forms.TreeNode treeNode59 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode60 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode33 = new System.Windows.Forms.TreeNode("节点0");
System.Windows.Forms.TreeNode treeNode34 = new System.Windows.Forms.TreeNode("节点1");
System.Windows.Forms.TreeNode treeNode35 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode36 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode37 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode33,
treeNode34,
treeNode35,
treeNode36});
System.Windows.Forms.TreeNode treeNode38 = new System.Windows.Forms.TreeNode("节点4");
System.Windows.Forms.TreeNode treeNode39 = new System.Windows.Forms.TreeNode("节点5");
System.Windows.Forms.TreeNode treeNode40 = new System.Windows.Forms.TreeNode("节点6");
System.Windows.Forms.TreeNode treeNode41 = new System.Windows.Forms.TreeNode("节点7");
System.Windows.Forms.TreeNode treeNode42 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode38,
treeNode39,
treeNode40,
treeNode41});
System.Windows.Forms.TreeNode treeNode43 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode44 = new System.Windows.Forms.TreeNode("节点3");
System.Windows.Forms.TreeNode treeNode45 = new System.Windows.Forms.TreeNode("节点00");
System.Windows.Forms.TreeNode treeNode46 = new System.Windows.Forms.TreeNode("节点01");
System.Windows.Forms.TreeNode treeNode47 = new System.Windows.Forms.TreeNode("节点02");
System.Windows.Forms.TreeNode treeNode48 = new System.Windows.Forms.TreeNode("节点03");
System.Windows.Forms.TreeNode treeNode49 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode45,
treeNode46,
treeNode47,
treeNode48});
System.Windows.Forms.TreeNode treeNode50 = new System.Windows.Forms.TreeNode("节点11");
System.Windows.Forms.TreeNode treeNode51 = new System.Windows.Forms.TreeNode("节点12");
System.Windows.Forms.TreeNode treeNode52 = new System.Windows.Forms.TreeNode("节点13");
System.Windows.Forms.TreeNode treeNode53 = new System.Windows.Forms.TreeNode("节点14");
System.Windows.Forms.TreeNode treeNode54 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode50,
treeNode51,
treeNode52,
treeNode53});
System.Windows.Forms.TreeNode treeNode55 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode56 = new System.Windows.Forms.TreeNode("节点3");
this.uiLine8 = new Sunny.UI.UILine();
this.uiDatetimePicker1 = new Sunny.UI.UIDatetimePicker();
this.uiColorPicker1 = new Sunny.UI.UIColorPicker();
@ -95,11 +95,13 @@
this.uiLine4 = new Sunny.UI.UILine();
this.uiComboboxEx1 = new Sunny.UI.UIComboboxEx();
this.uiComboboxEx2 = new Sunny.UI.UIComboboxEx();
this.dateTimePicker1 = new System.Windows.Forms.DateTimePicker();
this.PagePanel.SuspendLayout();
this.SuspendLayout();
//
// PagePanel
//
this.PagePanel.Controls.Add(this.dateTimePicker1);
this.PagePanel.Controls.Add(this.uiComboboxEx2);
this.PagePanel.Controls.Add(this.uiComboboxEx1);
this.PagePanel.Controls.Add(this.uiLine4);
@ -245,6 +247,7 @@
this.uiDatePicker1.MinimumSize = new System.Drawing.Size(63, 0);
this.uiDatePicker1.Name = "uiDatePicker1";
this.uiDatePicker1.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2);
this.uiDatePicker1.ShowToday = true;
this.uiDatePicker1.Size = new System.Drawing.Size(150, 29);
this.uiDatePicker1.SymbolDropDown = 61555;
this.uiDatePicker1.SymbolNormal = 61555;
@ -301,19 +304,19 @@
this.uiComboTreeView1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uiComboTreeView1.MinimumSize = new System.Drawing.Size(63, 0);
this.uiComboTreeView1.Name = "uiComboTreeView1";
treeNode29.Name = "节点0";
treeNode29.Text = "节点0";
treeNode30.Name = "节点1";
treeNode30.Text = "节点1";
treeNode31.Name = "节点2";
treeNode31.Text = "节点2";
treeNode32.Name = "节点3";
treeNode32.Text = "节点3";
treeNode61.Name = "节点0";
treeNode61.Text = "节点0";
treeNode62.Name = "节点1";
treeNode62.Text = "节点1";
treeNode63.Name = "节点2";
treeNode63.Text = "节点2";
treeNode64.Name = "节点3";
treeNode64.Text = "节点3";
this.uiComboTreeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode29,
treeNode30,
treeNode31,
treeNode32});
treeNode61,
treeNode62,
treeNode63,
treeNode64});
this.uiComboTreeView1.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2);
this.uiComboTreeView1.Size = new System.Drawing.Size(150, 29);
this.uiComboTreeView1.TabIndex = 43;
@ -341,19 +344,19 @@
this.uiComboTreeView2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uiComboTreeView2.MinimumSize = new System.Drawing.Size(63, 0);
this.uiComboTreeView2.Name = "uiComboTreeView2";
treeNode25.Name = "节点0";
treeNode25.Text = "节点0";
treeNode26.Name = "节点1";
treeNode26.Text = "节点1";
treeNode27.Name = "节点2";
treeNode27.Text = "节点2";
treeNode28.Name = "节点3";
treeNode28.Text = "节点3";
treeNode57.Name = "节点0";
treeNode57.Text = "节点0";
treeNode58.Name = "节点1";
treeNode58.Text = "节点1";
treeNode59.Name = "节点2";
treeNode59.Text = "节点2";
treeNode60.Name = "节点3";
treeNode60.Text = "节点3";
this.uiComboTreeView2.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode25,
treeNode26,
treeNode27,
treeNode28});
treeNode57,
treeNode58,
treeNode59,
treeNode60});
this.uiComboTreeView2.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2);
this.uiComboTreeView2.Size = new System.Drawing.Size(150, 29);
this.uiComboTreeView2.TabIndex = 46;
@ -370,35 +373,35 @@
this.uiComboTreeView3.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uiComboTreeView3.MinimumSize = new System.Drawing.Size(63, 0);
this.uiComboTreeView3.Name = "uiComboTreeView3";
treeNode1.Name = "节点0";
treeNode1.Text = "节点0";
treeNode2.Name = "节点1";
treeNode2.Text = "节点1";
treeNode3.Name = "节点2";
treeNode3.Text = "节点2";
treeNode4.Name = "节点3";
treeNode4.Text = "节点3";
treeNode5.Name = "节点0";
treeNode5.Text = "节点0";
treeNode6.Name = "节点4";
treeNode6.Text = "节点4";
treeNode7.Name = "节点5";
treeNode7.Text = "节点5";
treeNode8.Name = "节点6";
treeNode8.Text = "节点6";
treeNode9.Name = "节点7";
treeNode9.Text = "节点7";
treeNode10.Name = "节点1";
treeNode10.Text = "节点1";
treeNode11.Name = "节点2";
treeNode11.Text = "节点2";
treeNode12.Name = "节点3";
treeNode12.Text = "节点3";
treeNode33.Name = "节点0";
treeNode33.Text = "节点0";
treeNode34.Name = "节点1";
treeNode34.Text = "节点1";
treeNode35.Name = "节点2";
treeNode35.Text = "节点2";
treeNode36.Name = "节点3";
treeNode36.Text = "节点3";
treeNode37.Name = "节点0";
treeNode37.Text = "节点0";
treeNode38.Name = "节点4";
treeNode38.Text = "节点4";
treeNode39.Name = "节点5";
treeNode39.Text = "节点5";
treeNode40.Name = "节点6";
treeNode40.Text = "节点6";
treeNode41.Name = "节点7";
treeNode41.Text = "节点7";
treeNode42.Name = "节点1";
treeNode42.Text = "节点1";
treeNode43.Name = "节点2";
treeNode43.Text = "节点2";
treeNode44.Name = "节点3";
treeNode44.Text = "节点3";
this.uiComboTreeView3.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode5,
treeNode10,
treeNode11,
treeNode12});
treeNode37,
treeNode42,
treeNode43,
treeNode44});
this.uiComboTreeView3.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2);
this.uiComboTreeView3.ShowLines = true;
this.uiComboTreeView3.Size = new System.Drawing.Size(150, 29);
@ -414,35 +417,35 @@
this.uiComboTreeView4.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.uiComboTreeView4.MinimumSize = new System.Drawing.Size(63, 0);
this.uiComboTreeView4.Name = "uiComboTreeView4";
treeNode13.Name = "节点0";
treeNode13.Text = "节点00";
treeNode14.Name = "节点1";
treeNode14.Text = "节点01";
treeNode15.Name = "节点2";
treeNode15.Text = "节点02";
treeNode16.Name = "节点3";
treeNode16.Text = "节点03";
treeNode17.Name = "节点0";
treeNode17.Text = "节点0";
treeNode18.Name = "节点4";
treeNode18.Text = "节点11";
treeNode19.Name = "节点5";
treeNode19.Text = "节点12";
treeNode20.Name = "节点6";
treeNode20.Text = "节点13";
treeNode21.Name = "节点7";
treeNode21.Text = "节点14";
treeNode22.Name = "节点1";
treeNode22.Text = "节点1";
treeNode23.Name = "节点2";
treeNode23.Text = "节点2";
treeNode24.Name = "节点3";
treeNode24.Text = "节点3";
treeNode45.Name = "节点0";
treeNode45.Text = "节点00";
treeNode46.Name = "节点1";
treeNode46.Text = "节点01";
treeNode47.Name = "节点2";
treeNode47.Text = "节点02";
treeNode48.Name = "节点3";
treeNode48.Text = "节点03";
treeNode49.Name = "节点0";
treeNode49.Text = "节点0";
treeNode50.Name = "节点4";
treeNode50.Text = "节点11";
treeNode51.Name = "节点5";
treeNode51.Text = "节点12";
treeNode52.Name = "节点6";
treeNode52.Text = "节点13";
treeNode53.Name = "节点7";
treeNode53.Text = "节点14";
treeNode54.Name = "节点1";
treeNode54.Text = "节点1";
treeNode55.Name = "节点2";
treeNode55.Text = "节点2";
treeNode56.Name = "节点3";
treeNode56.Text = "节点3";
this.uiComboTreeView4.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode17,
treeNode22,
treeNode23,
treeNode24});
treeNode49,
treeNode54,
treeNode55,
treeNode56});
this.uiComboTreeView4.Padding = new System.Windows.Forms.Padding(0, 0, 30, 2);
this.uiComboTreeView4.ShowLines = true;
this.uiComboTreeView4.Size = new System.Drawing.Size(150, 29);
@ -491,6 +494,13 @@
this.uiComboboxEx2.Size = new System.Drawing.Size(150, 30);
this.uiComboboxEx2.TabIndex = 51;
//
// dateTimePicker1
//
this.dateTimePicker1.Location = new System.Drawing.Point(390, 277);
this.dateTimePicker1.Name = "dateTimePicker1";
this.dateTimePicker1.Size = new System.Drawing.Size(200, 29);
this.dateTimePicker1.TabIndex = 52;
//
// FCombobox
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
@ -524,5 +534,6 @@
private UILine uiLine4;
private UIComboboxEx uiComboboxEx2;
private UIComboboxEx uiComboboxEx1;
private System.Windows.Forms.DateTimePicker dateTimePicker1;
}
}

View File

@ -41,10 +41,10 @@
this.uiMarkLabel3 = new Sunny.UI.UIMarkLabel();
this.uiMarkLabel4 = new Sunny.UI.UIMarkLabel();
this.uiLedLabel = new Sunny.UI.UILine();
this.uiLedLabel1 = new Sunny.UI.Controls.UILedLabel();
this.uiLedLabel2 = new Sunny.UI.Controls.UILedLabel();
this.uiLedLabel3 = new Sunny.UI.Controls.UILedLabel();
this.uiLedLabel4 = new Sunny.UI.Controls.UILedLabel();
this.uiLedLabel1 = new Sunny.UI.UILedLabel();
this.uiLedLabel2 = new Sunny.UI.UILedLabel();
this.uiLedLabel3 = new Sunny.UI.UILedLabel();
this.uiLedLabel4 = new Sunny.UI.UILedLabel();
this.PagePanel.SuspendLayout();
this.SuspendLayout();
//
@ -308,10 +308,10 @@
private UIMarkLabel uiMarkLabel4;
private UIMarkLabel uiMarkLabel3;
private UIMarkLabel uiMarkLabel2;
private UI.Controls.UILedLabel uiLedLabel1;
private UI.UILedLabel uiLedLabel1;
private UILine uiLedLabel;
private UI.Controls.UILedLabel uiLedLabel3;
private UI.Controls.UILedLabel uiLedLabel2;
private UI.Controls.UILedLabel uiLedLabel4;
private UI.UILedLabel uiLedLabel3;
private UI.UILedLabel uiLedLabel2;
private UI.UILedLabel uiLedLabel4;
}
}

View File

@ -523,7 +523,7 @@ namespace Sunny.UI
int top = height * (i / 4);
SizeF sf = e.Graphics.MeasureString(months[i], Font);
e.Graphics.DrawString(months[i], Font, i == activeMonth ? UIColor.Blue : ForeColor, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
e.Graphics.DrawString(months[i], Font, i == activeMonth ? PrimaryColor : ForeColor, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
}
}
@ -558,6 +558,8 @@ namespace Sunny.UI
private int activeYear = -1;
public bool ShowToday { get; set; }
private void p1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
for (int i = 0; i < 12; i++)
@ -571,7 +573,7 @@ namespace Sunny.UI
Color color = (i == 0 || i == 11) ? Color.DarkGray : ForeColor;
if (years[i] != 10000)
{
e.Graphics.DrawString(years[i].ToString(), Font, i == activeYear ? UIColor.Blue : color, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
e.Graphics.DrawString(years[i].ToString(), Font, i == activeYear ? PrimaryColor : color, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
}
}
}
@ -628,11 +630,11 @@ namespace Sunny.UI
sf = e.Graphics.MeasureString(days[i].Day.ToString(), Font);
Color color = (days[i].Month == Month) ? ForeColor : Color.DarkGray;
color = (days[i].DateString() == date.DateString()) ? UIColor.Blue : color;
color = (days[i].DateString() == date.DateString()) ? PrimaryColor : color;
if (!maxDrawer)
{
e.Graphics.DrawString(days[i].Day.ToString(), Font, i == activeDay ? UIColor.Blue : color, left + (width - sf.Width) / 2, top + 30 + (height - sf.Height) / 2);
e.Graphics.DrawString(days[i].Day.ToString(), Font, i == activeDay ? PrimaryColor : color, left + (width - sf.Width) / 2, top + 30 + (height - sf.Height) / 2);
}
if (!maxDrawer && days[i].Date.Equals(DateTime.MaxValue.Date))
@ -640,9 +642,25 @@ namespace Sunny.UI
maxDrawer = true;
}
}
if (ShowToday)
{
using (Font SubFont = new Font("微软雅黑", 10.5f))
{
e.Graphics.FillRectangle(p3.FillColor, p3.Width - width * 4 + 1, p3.Height - height + 1, width * 4 - 2, height - 2);
e.Graphics.FillRoundRectangle(PrimaryColor, new Rectangle((int)(p3.Width - width * 4 + 6), p3.Height - height + 3, 8, height - 10), 3);
sf = e.Graphics.MeasureString("今天:" + DateTime.Now.DateString(), SubFont);
e.Graphics.DrawString("今天 :", SubFont, isToday ? PrimaryColor : Color.DarkGray, p3.Width - width * 4 + 17, p3.Height - height - 1 + (height - sf.Height) / 2.0f);
sf = e.Graphics.MeasureString(DateTime.Now.DateString(), Font);
e.Graphics.DrawString(DateTime.Now.DateString(), Font, isToday ? PrimaryColor : Color.DarkGray, p3.Width - width * 4 + 55, p3.Height - height - 1 + (height - sf.Height) / 2.0f);
}
}
}
private int activeDay = -1;
private bool isToday;
private void p3_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
@ -651,8 +669,11 @@ namespace Sunny.UI
int x = e.Location.X / width;
int y = (e.Location.Y - 30) / height;
int iy = x + y * 7;
if (activeDay != iy)
bool istoday = ShowToday && e.Location.Y > p3.Top + p3.Height - height && e.Location.X > p3.Left + width * 3;
if (activeDay != iy || istoday != isToday)
{
isToday = istoday;
activeDay = iy;
p3.Invalidate();
}
@ -667,8 +688,16 @@ namespace Sunny.UI
int id = x + y * 7;
if (id < 0 || id >= 42) return;
date = days[id].Date;
if (ShowToday && e.Location.Y > p3.Height - height && e.Location.X > p3.Width - width * 4)
{
date = DateTime.Now.Date;
}
DoValueChanged(this, Date);
CloseParent();
}
public Color PrimaryColor { get; set; } = UIColor.Blue;
}
}

View File

@ -684,6 +684,8 @@ namespace Sunny.UI
private readonly List<string> months = new List<string>();
private readonly List<int> years = new List<int>();
private readonly List<DateTime> days = new List<DateTime>();
public Color PrimaryColor { get; set; } = UIColor.Blue;
public bool ShowToday { get; set; }
public UIDateTimeItem()
{
@ -1070,7 +1072,7 @@ namespace Sunny.UI
int top = height * (i / 4);
SizeF sf = e.Graphics.MeasureString(months[i], Font);
e.Graphics.DrawString(months[i], Font, i == activeMonth ? UIColor.Blue : ForeColor, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
e.Graphics.DrawString(months[i], Font, i == activeMonth ? PrimaryColor : ForeColor, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
}
}
@ -1112,7 +1114,7 @@ namespace Sunny.UI
SizeF sf = e.Graphics.MeasureString(years[i].ToString(), Font);
Color color = (i == 0 || i == 11) ? Color.DarkGray : ForeColor;
e.Graphics.DrawString(years[i].ToString(), Font, i == activeYear ? UIColor.Blue : color, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
e.Graphics.DrawString(years[i].ToString(), Font, i == activeYear ? PrimaryColor : color, left + (width - sf.Width) / 2, top + (height - sf.Height) / 2);
}
}
@ -1168,11 +1170,11 @@ namespace Sunny.UI
sf = e.Graphics.MeasureString(days[i].Day.ToString(), Font);
Color color = (days[i].Month == Month) ? ForeColor : Color.DarkGray;
color = (days[i].DateString() == date.DateString()) ? UIColor.Blue : color;
color = (days[i].DateString() == date.DateString()) ? PrimaryColor : color;
if (!maxDrawer)
{
e.Graphics.DrawString(days[i].Day.ToString(), Font, i == activeDay ? UIColor.Blue : color, left + (width - sf.Width) / 2, top + 30 + (height - sf.Height) / 2);
e.Graphics.DrawString(days[i].Day.ToString(), Font, i == activeDay ? PrimaryColor : color, left + (width - sf.Width) / 2, top + 30 + (height - sf.Height) / 2);
}
if (!maxDrawer && days[i].Date.Equals(DateTime.MaxValue.Date))
@ -1180,7 +1182,24 @@ namespace Sunny.UI
maxDrawer = true;
}
}
if (ShowToday)
{
using (Font SubFont = new Font("微软雅黑", 10.5f))
{
e.Graphics.FillRectangle(p3.FillColor, p3.Width - width * 4 + 1, p3.Height - height + 1, width * 4 - 2, height - 2);
e.Graphics.FillRoundRectangle(PrimaryColor, new Rectangle((int)(p3.Width - width * 4 + 6), p3.Height - height + 3, 8, height - 10), 3);
sf = e.Graphics.MeasureString("今天:" + DateTime.Now.DateString(), SubFont);
e.Graphics.DrawString("今天 :", SubFont, isToday ? PrimaryColor : Color.DarkGray, p3.Width - width * 4 + 17, p3.Height - height - 1 + (height - sf.Height) / 2.0f);
sf = e.Graphics.MeasureString(DateTime.Now.DateString(), Font);
e.Graphics.DrawString(DateTime.Now.DateString(), Font, isToday ? PrimaryColor : Color.DarkGray, p3.Width - width * 4 + 55, p3.Height - height - 1 + (height - sf.Height) / 2.0f);
}
}
}
private bool isToday;
private void p3_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
@ -1189,8 +1208,11 @@ namespace Sunny.UI
int x = e.Location.X / width;
int y = (e.Location.Y - 30) / height;
int iy = x + y * 7;
if (activeDay != iy)
bool istoday = ShowToday && e.Location.Y > p3.Top + p3.Height - height && e.Location.X > p3.Left + width * 3;
if (activeDay != iy || istoday != isToday)
{
isToday = istoday;
activeDay = iy;
p3.Invalidate();
}
@ -1205,6 +1227,11 @@ namespace Sunny.UI
int id = x + y * 7;
if (id < 0 || id >= 42) return;
date = days[id].Date;
if (ShowToday && e.Location.Y > p3.Height - height && e.Location.X > p3.Width - width * 4)
{
date = DateTime.Now.Date;
}
date = new DateTime(date.Year, date.Month, date.Day, Hour, Minute, Second);
DoValueChanged(this, Date);
//CloseParent();

View File

@ -45,6 +45,10 @@ namespace Sunny.UI
[Description("日期输入时,是否可空显示"), Category("SunnyUI")]
public bool CanEmpty { get; set; }
[DefaultValue(false)]
[Description("日期输入时,显示今日按钮"), Category("SunnyUI")]
public bool ShowToday { get; set; }
private void UIDatePicker_TextChanged(object sender, EventArgs e)
{
if (Text.Length == MaxLength)
@ -112,6 +116,8 @@ namespace Sunny.UI
private void UIDatetimePicker_ButtonClick(object sender, EventArgs e)
{
item.Date = Value;
item.ShowToday = ShowToday;
item.PrimaryColor = RectColor;
ItemForm.Show(this);
}

View File

@ -52,6 +52,11 @@ namespace Sunny.UI
[Description("日期输入时,是否可空显示"), Category("SunnyUI")]
public bool CanEmpty { get; set; }
[DefaultValue(false)]
[Description("日期输入时,显示今日按钮"), Category("SunnyUI")]
public bool ShowToday { get; set; }
public UIDatetimePicker()
{
InitializeComponent();
@ -133,6 +138,8 @@ namespace Sunny.UI
private void UIDatetimePicker_ButtonClick(object sender, EventArgs e)
{
item.Date = Value;
item.ShowToday = ShowToday;
item.PrimaryColor = RectColor;
ItemForm.Show(this);
}

View File

@ -24,7 +24,7 @@ using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace Sunny.UI.Controls
namespace Sunny.UI
{
[ToolboxItem(true)]
[DefaultEvent("ValueChanged")]