基本信息
源码名称:winform 自定义日历控件源码+实例(支持中文)
源码大小:0.10M
文件格式:.zip
开发语言:C#
更新时间:2015-07-06
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 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();
      }
   }
}