⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usercontroltime.cs

📁 C#写成的PB形式的时间控件
💻 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 + -