Click here to Skip to main content
Click here to Skip to main content

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

, 26 Oct 2009 Ms-PL
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

Comments and Discussions

GeneralMy vote of 5 Pinmembermocking1315-Aug-12 20:38 
GeneralImage and text PinmemberEdchar26-Mar-11 10:12 
GeneralAbility to set month values for use as a 12 month yearbook PinmemberBaileyMW3-Nov-09 10:55 
AnswerRe: Ability to set month values for use as a 12 month yearbook PinmemberManish Ranjan Kumar9-Nov-09 3:23 
GeneralLocalization PinmemberMember 39406323-Nov-09 6:38 
AnswerRe: Localization PinmemberManish Ranjan Kumar9-Nov-09 3:22 
GeneralHi PinmemberRavenet27-Oct-09 16:08 
GeneralRe: Hi PinmemberManish Ranjan Kumar27-Oct-09 23:55 
GeneralMinor typo PinmemberRavi Bhavnani27-Oct-09 12:08 
GeneralRe: Minor typo PinmemberManish Ranjan Kumar27-Oct-09 23:55 
GeneralVery nice. Thx PinmemberAbu Abdillah27-Oct-09 6:35 
GeneralRe: Very nice. Thx PinmemberManish Ranjan Kumar27-Oct-09 7:13 

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

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

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