📄 usercontroltime.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Globalization;
using System.Text.RegularExpressions;
namespace myCombo_src
{
public partial class UserControlTime : UserControl
{
public UserControlTime()
{
InitializeComponent();
myTSMonthCalendar = new ToolStripMonthCalendar();
tsDD = new ToolStripDropDown();
DateTime dtNow = DateTime.Now;
this.msktbTime.Text = dtNow.ToString();
// instantiere evenimente
this.myTSMonthCalendar.MonthCalendarControl.DateSelected += new DateRangeEventHandler(MonthCalendarControl_DateSelected);
this.msktbTime.TextChanged += new EventHandler(msktbTime_TextChanged);
}
private ToolStripMonthCalendar myTSMonthCalendar;
private ToolStripDropDown tsDD;
private Object _value = DateTime.Now;
private string _valueString = "";
#region Property
[Description("Mask格式种类枚举")]
public MaskType MaskType
{
get { return this.msktbTime.MaskType; }
set
{
if (value == MaskType.Long)
{
this.msktbTime.Mask = "0000-00-00 00:00";
}
else
{
this.msktbTime.Mask = "0000-00-00";
}
this.msktbTime.MaskType = value;
}
}
[Browsable(false)]
//当前控件的value属性
public Object Value
{
get { return _value; }
set
{
_value = value;
}
}
#endregion
#region Control's Event
private void MonthCalendarControl_DateSelected(object sender, DateRangeEventArgs e)
{
_valueString = this.msktbTime.getTime(e.End);
this.msktbTime.Text = this.msktbTime.getTime(e.End);
this.tsDD.Close();
}
private void msktbTime_TextChanged(object sender, EventArgs e)
{
DateTime dtTemp;
if (this.msktbTime.getInputCount(this.msktbTime) == 0)
{
this.Value = null;
return;
}
if (!DateTime.TryParse(_valueString, out dtTemp))
this.Value = null;
else
{
this.Value = DateTime.Parse(_valueString);
}
}
private void btnSelectDay_Click(object sender, EventArgs e)
{
if (!this.tsDD.Visible)
{
try
{
if (this.Text != "")
this.myTSMonthCalendar.MonthCalendarControl.SetDate(Convert.ToDateTime(this.Text));
}
catch (Exception)
{
MessageBox.Show("Data nu este in formatul corect!");
}
tsDD.Items.Add(this.myTSMonthCalendar);
tsDD.Show(this, this.CalculatePoz());
}
}
#endregion
#region Methods
private Point CalculatePoz()
{
Point point = new Point(0, this.Height);
if ((this.PointToScreen(new Point(0, 0)).Y + this.Height + this.myTSMonthCalendar.Height) > Screen.PrimaryScreen.WorkingArea.Height)
{
point.Y = -this.myTSMonthCalendar.Height - 7;
}
return point;
}
#endregion
}
//Declare a class that inherits from ToolStripControlHost.
public class ToolStripMonthCalendar : ToolStripControlHost
{
// Call the base constructor passing in a MonthCalendar instance.
public ToolStripMonthCalendar() : base(new MonthCalendar()) { }
public MonthCalendar MonthCalendarControl
{
get
{
return Control as MonthCalendar;
}
}
// Expose the MonthCalendar.FirstDayOfWeek as a property.
public Day FirstDayOfWeek
{
get
{
return MonthCalendarControl.FirstDayOfWeek;
}
set { value = MonthCalendarControl.FirstDayOfWeek; }
}
// Expose the AddBoldedDate method.
public void AddBoldedDate(DateTime dateToBold)
{
MonthCalendarControl.AddBoldedDate(dateToBold);
}
// Subscribe and unsubscribe the control events you wish to expose.
protected override void OnSubscribeControlEvents(Control c)
{
// Call the base so the base events are connected.
base.OnSubscribeControlEvents(c);
// Cast the control to a MonthCalendar control.
MonthCalendar monthCalendarControl = (MonthCalendar)c;
// Add the event.
}
protected override void OnUnsubscribeControlEvents(Control c)
{
// Call the base method so the basic events are unsubscribed.
base.OnUnsubscribeControlEvents(c);
// Cast the control to a MonthCalendar control.
MonthCalendar monthCalendarControl = (MonthCalendar)c;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -