在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → winform 自定义日历控件源码+实例(支持中文)

winform 自定义日历控件源码+实例(支持中文)

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.10M
  • 下载次数:78
  • 浏览次数:1682
  • 发布时间:2015-07-06
  • 实例类别:C#语言基础
  • 发 布 人:jsjs_js
  • 文件格式:.zip
  • 所需积分:2
 相关标签: 日历 控件

实例介绍

【实例简介】

自定义日历控件,可以修改日历头背景色,时间北京色等等,支持多国语言

【实例截图】

【核心代码】

namespace MonthCalendarDemo
{
   using System;
   using System.Drawing;
   using System.Globalization;
   using System.Threading;
   using System.Windows.Forms;

   using CustomControls;

   public partial class Form1 : Form
   {
      private bool init;

      int[] keys = new[]
         {
            0x0020, 0x0021, 0x061B, 0x066B, 0xFDFC, 0x066A, 0x060C, 0x06AF,
            0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
            0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
            0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
            0x066C, 0x0624, 0x200C, 0x0698, 0x064A, 0x064D, 0x0625, 0x0623,
            0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x0654, 0x005D,
            0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0670, 0x064C,
            0x0653, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
            0x200D, 0x0634, 0x0630, 0x0632, 0x06CC, 0x062B, 0x0628, 0x0644,
            0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
            0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
            0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E
         };

      public Form1()
      {
         //Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("fa-IR");
         //Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("fa-IR");

         InitializeComponent();

         //this.RightToLeft = RightToLeft.Yes; 
         //this.RightToLeftLayout = true;

         var cat1 = new BoldedDateCategory("Holiday") { ForeColor = Color.DarkBlue };
         var cat2 = new BoldedDateCategory("Vacation") { ForeColor = Color.DarkGreen, BackColorStart = Color.Gray, BackColorEnd = Color.White };
         this.monthCalendar1.BoldedDateCategoryCollection.AddRange(new[] { cat1, cat2 });
         this.datePicker1.BoldedDateCategoryCollection.AddRange(new[] { cat1, cat2 });

         this.monthCalendar1.BoldedDatesCollection.Add(new BoldedDate { Category = cat1, Value = DateTime.Today.AddDays(1) });
         this.monthCalendar1.BoldedDatesCollection.Add(new BoldedDate { Category = cat2, Value = DateTime.Today.AddDays(2) });

         this.datePicker1.BoldedDatesCollection.Add(new BoldedDate { Category = cat1, Value = DateTime.Today.AddDays(1) });
         this.datePicker1.BoldedDatesCollection.Add(new BoldedDate { Category = cat2, Value = DateTime.Today.AddDays(2) });

         
         this.label2.Text = this.monthCalendar1.MinDate.ToShortDateString();
         this.label3.Text = this.monthCalendar1.MaxDate.ToShortDateString();

         this.init = true;
         //this.monthCalendar1.FormatProvider.MonthNames = new [] { "فروردین", "اردیبهشت", "خرداد", "تیر", "مرداد", "شهریور", "مهر", "آبان", "آذر", "دی", "بهمن", "اسفند", "" };
         //this.datePicker1.FormatProvider.ShortestDayNames = new[] { "ی", "د", "س", "چ", "پ", "ج", "ش" };

         this.comboBox1.SelectedIndex = (int)this.monthCalendar1.FormatProvider.FirstDayOfWeek;

         this.init = false;
      }

      //private void TextBox1OnKeyPress(object sender, KeyPressEventArgs e)
      //{
      //   if (e.KeyChar > 31 && e.KeyChar < 128)
      //   {
      //      e.KeyChar = (char)keys[e.KeyChar - 32];
      //   }
      //}

      private void customDateTimePicker1_ValueChanged(object sender, CustomControls.CheckDateEventArgs e)
      {
         e.IsValid = e.Date.Year <= 2012;
         this.label5.Text = e.Date.ToShortDateString();
      }

      private void customDateTimePicker1_ActiveDateChanged(object sender, CustomControls.ActiveDateChangedEventArgs e)
      {
         if (e.IsBoldDate)
         {
            this.label1.Text = "Bolded date is : "   e.Date.ToShortDateString()   "\nText description here.";
         }
         else
         {
            this.label1.Text = "";
         }
      }

      private void button1_Click(object sender, EventArgs e)
      {
         this.monthCalendar1.ViewStart = this.monthCalendar1.MinDate;
      }

      private void button2_Click(object sender, EventArgs e)
      {
         this.monthCalendar1.ViewStart = this.monthCalendar1.MaxDate;
      }

      private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
      {
         this.label4.Text = e.Start.ToShortDateString();
      }

      private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
      {
         if (this.init || this.comboBox1.SelectedIndex < 0 || this.comboBox1.SelectedIndex > 6)
         {
            return;
         }

         this.monthCalendar1.BeginUpdate();
         this.monthCalendar1.FormatProvider.FirstDayOfWeek = (DayOfWeek)this.comboBox1.SelectedIndex;
         this.monthCalendar1.UpdateMonths();
         this.monthCalendar1.EndUpdate();

         this.datePicker1.FormatProvider.FirstDayOfWeek = (DayOfWeek)this.comboBox1.SelectedIndex;
         this.datePicker1.Refresh();
      }

      private void button3_Click(object sender, EventArgs e)
      {
         this.datePicker1.Culture = new CultureInfo("fa-IR");
         this.datePicker1.CultureCalendar = new PersianCalendar();
         this.datePicker1.Refresh();
      }
   }
}

标签: 日历 控件

实例下载地址

winform 自定义日历控件源码+实例(支持中文)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警