Click here to Skip to main content
13,196,946 members (56,568 online)
Click here to Skip to main content
Add your own
alternative version


75 bookmarked
Posted 26 Oct 2009

Themed Vista Style navigable Month Calander control with full Keyboard and Designer support

, 26 Oct 2009
Rate this:
Please Sign up or sign in to vote.
Month Calander implementation using c#.



Simple to use Month Calendar control supporting

  • Vista Style Navigation
  • Keyboard Support
  • Full Designer Support


Month Calendar control has the following features

  • 6 Pre-defined Themes
  • Supports alpha blend image
  • Full Keyboard support
  • Full Design Time support
  • Supports Saving/Loading of layout colors
  • Supports Disabled back color

Using the Code

Control is simple and straight forward.

Use the designer to fine tune appearance.




  • Enter Key - Select
  • Left Key - Increment Day/Month/Year/Years by one.
  • Right Key - Decrement Day/Month/Year/Years by one.
  • Down Key - Increment Day/month/Year/Years by one column.
  • Up Key - Decrement Day/month/Year/Years by one column.
  • Space bar - Change View form Date to Month, Month to Year, Years to Years.

Points of Interest



  • Appearance - MonthCalanderAppearance object containing Appearance of MonthCalendar.
  • BackGroundImageAlpha - % of transparency of BackGroundImage.
  • CaptionFont - Gets or sets Font Family to be used for drawing Caption.
  • CurrentAppearance - MonthCalanderAppearance object containing current appearance.
  • DrawFocused - Gets or sets whether focus rectangle needs to be drawn.
  • HotAppearance - Gets or sets the control supports hover behaviour.
  • NumberFont - Gets or sets Font Family to be used for drawing numbers.
  • SelectedDate - Gets or sets current selected date.


  • ValueChanged - Fired when SelectedDate is changed.
  • ValueChanging - Fired when SelectedDate is about to be changed.


  • HitTest() - Performs the HitTest
  • bool LoadTheme(string fileName) - Loads the color scheme from a xml file. fileName is location of xml file containing color scheme. Returns wether Load was successfull or not.
  • ResetAppearance() - Reset the appearance of Calander control to default value.
  • bool SaveTheme(string fileName) - Saves current color scheme of the Calander control to a xml file. fileName is path of xml file to which data will be written. Returns wether save was successful or not.



  • UseTheme - Gets or Sets wether to use predefined theme or custom colors.
  • ColorScheme - Gets or Sets ColorScheme to be applied. Please Note : This will not be applicable when UseTheme is set as false.


  • ThemeChanged - Fired when UseTheme or ColorScheme is changed.


  • bool DefaultChanged() - Returns wether ThemeProperty properties has changed or not.



  • ActiveTextColor - Gets or Sets color of active text.
  • ArrowColor - Gets or Sets color of navigation arrow.
  • ArrowHoverColor - Gets or Sets hover color of navigation arroe.
  • ButtonBackColor - Gets or Sets back color appearance of navigation buttons.
  • CaptionBackColor - Gets or Sets back appearance of caption background.
  • CaptionTextColor - Gets or Sets color of caption text.
  • ControlBackColor - Gets or Sets backcolor of control.
  • ControlBorderColor - Gets or Sets color of borders.
  • DateDaySaperatorColor - Gets or Sets color of date Day saperator.
  • DayMarker - Gets or Sets color of Date Indicator(e.g. S M T).
  • DisabledMask - Gets or Sets Mask Color when control is disabled.
  • FocusedBorder - Gets or Sets focused border color.
  • HoverColor - Gets or Sets hover color.
  • InactiveTextColor - Gets or Sets inactive text color.
  • Radius - Gets or Sets radius of Arc on hover at edge.
  • SelectedBackColor - Gets or Sets back appearance of selected date.
  • SelectedDateAppearance - Gets or Sets selected date border appearance.
  • TodayBorderColor - Gets or Sets color of today border color.
  • SelectedDateTextColor - Gets or Sets text color of selected date.
  • TodayColor - Gets or Sets color of Today marker.


  • AppearanceChanged - Fired when appearance property is changed.


  • Assign(MonthCalanderAppearance appearance) - Assigns properties of appearance to current object.
  • bool DefaultChanged() - Returns wether ThemeProperty properties has changed or not.
  • Reset() - Resets current appearance to default appearance.

Known Issues

  • No Test Performed.


  • 23 October 2009: Initial draft of the control


This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)


About the Author

Manish Ranjan Kumar
Software Developer (Senior)
India India
No Biography provided

You may also be interested in...


Comments and Discussions

GeneralMy vote of 5 Pin
mocking1315-Aug-12 19:38
membermocking1315-Aug-12 19:38 
GeneralImage and text Pin
Edchar26-Mar-11 9:12
memberEdchar26-Mar-11 9:12 
GeneralAbility to set month values for use as a 12 month yearbook Pin
BaileyMW3-Nov-09 9:55
memberBaileyMW3-Nov-09 9:55 
AnswerRe: Ability to set month values for use as a 12 month yearbook Pin
Manish Ranjan Kumar9-Nov-09 2:23
memberManish Ranjan Kumar9-Nov-09 2:23 
GeneralLocalization Pin
Member 39406323-Nov-09 5:38
memberMember 39406323-Nov-09 5:38 
AnswerRe: Localization Pin
Manish Ranjan Kumar9-Nov-09 2:22
memberManish Ranjan Kumar9-Nov-09 2:22 
GeneralHi Pin
Ravenet27-Oct-09 15:08
memberRavenet27-Oct-09 15:08 
GeneralRe: Hi Pin
Manish Ranjan Kumar27-Oct-09 22:55
memberManish Ranjan Kumar27-Oct-09 22:55 
GeneralMinor typo Pin
Ravi Bhavnani27-Oct-09 11:08
memberRavi Bhavnani27-Oct-09 11:08 
GeneralRe: Minor typo Pin
Manish Ranjan Kumar27-Oct-09 22:55
memberManish Ranjan Kumar27-Oct-09 22:55 
GeneralVery nice. Thx Pin
Abu Abdillah27-Oct-09 5:35
memberAbu Abdillah27-Oct-09 5:35 
GeneralRe: Very nice. Thx Pin
Manish Ranjan Kumar27-Oct-09 6:13
memberManish Ranjan Kumar27-Oct-09 6:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.171019.1 | Last Updated 27 Oct 2009
Article Copyright 2009 by Manish Ranjan Kumar
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid