Creating A Simple DotNet MonthCalendar And Changing Its Colors

The following example creates a simple dialog with a MonthCalendar dotNet control and assigns a mousedown event handler that prints the properties, methods, and events:

EXAMPLE

``` rollout test "test" height:200 width:220 ( dotNetControl f1 "MonthCalendar" align:#left height:180 width:200 on f1 mousedown val do ( format "in mousedown handler: arg: %\n" val format "showproperties:\n" showproperties val format "showmethods:\n" showmethods val format "showevents:\n" showevents val format "getpropnames : %\n" (getpropnames val) format "prop values:\n" ) ) createdialog test escapeEnable:true

```

After evaluation, a dialog showing a Month Calendar DotNet Control is displayed with default settings. You can see the constructor of the control using the dotnet.showconstructors() method:

EXAMPLE

``` --see the constructor of the control dotnet.showConstructors test.f1 System.Windows.Forms.MonthCalendar() true

```

You can also change the calendar's appearance by modifying its colors.

EXAMPLE

``` --First we list all properties of the control --and look to find those controlling some of its colors: showproperties test.f1 .AccessibilityObject : , read-only .AccessibleDefaultActionDescription : .AccessibleDescription : .AccessibleName : .AccessibleRole : .AllowDrop : .Anchor : .AnnuallyBoldedDates : .AutoScrollOffset : .AutoSize : .BackgroundImage : .BackgroundImageLayout : .BindingContext : .BoldedDates : .Bottom : , read-only .Bounds : .CalendarDimensions : .CanFocus : , read-only .CanSelect : , read-only .Capture : .CausesValidation : .CheckForIllegalCrossThreadCalls : , static .ClientRectangle : , read-only .ClientSize : .CompanyName : , read-only .Container : , read-only .ContainsFocus : , read-only .ContextMenu : .ContextMenuStrip : .Controls : , read-only .Created : , read-only .Cursor : .DataBindings : , read-only .DefaultBackColor : , read-only, static .DefaultFont : , read-only, static .DefaultForeColor : , read-only, static .DisplayRectangle : , read-only .Disposing : , read-only .Dock : .Enabled : .FirstDayOfWeek : .Focused : , read-only .Font :

                             .Handle : <System.IntPtr>, read-only .HasChildren : <System.Boolean>, read-only .Height
                            : <System.Int32> .ImeMode : <System.Windows.Forms.ImeMode> .InvokeRequired : <System.Boolean>,
                            read-only .IsAccessible : <System.Boolean> .IsDisposed : <System.Boolean>, read-only
                            .IsHandleCreated : <System.Boolean>, read-only .IsMirrored : <System.Boolean>, read-only
                            .LayoutEngine : <System.Windows.Forms.Layout.LayoutEngine>, read-only .Left : <System.Int32>
                            .Location : <System.Drawing.Point> .Margin : <System.Windows.Forms.Padding> .MaxDate
                            : <System.DateTime> .MaximumSize : <System.Drawing.Size> .MaxSelectionCount : <System.Int32>
                            .MinDate : <System.DateTime> .MinimumSize : <System.Drawing.Size> .ModifierKeys :
                            <System.Windows.Forms.Keys>, read-only, static .MonthlyBoldedDates : <System.DateTime[]>
                            .MouseButtons : <System.Windows.Forms.MouseButtons>, read-only, static .MousePosition
                            : <System.Drawing.Point>, read-only, static .Name : <System.String> .Padding : <System.Windows.Forms.Padding>
                            .Parent : <System.Windows.Forms.Control> .PreferredSize : <System.Drawing.Size>, read-only
                            .ProductName : <System.String>, read-only .ProductVersion : <System.String>, read-only
                            .RecreatingHandle : <System.Boolean>, read-only .Region : <System.Drawing.Region>
                            .Right : <System.Int32>, read-only .RightToLeft : <System.Windows.Forms.RightToLeft>
                            .RightToLeftLayout : <System.Boolean> .ScrollChange : <System.Int32> .SelectionEnd
                            : <System.DateTime> .SelectionRange : <System.Windows.Forms.SelectionRange> .SelectionStart
                            : <System.DateTime> .ShowToday : <System.Boolean> .ShowTodayCircle : <System.Boolean>
                            .ShowWeekNumbers : <System.Boolean> .SingleMonthSize : <System.Drawing.Size>, read-only
                            .Site : <System.ComponentModel.ISite> .Size : <System.Drawing.Size> .TabIndex : <System.Int32>
                            .TabStop : <System.Boolean> .Tag : <System.Object> .Text : <System.String> 
                                               
                             .TitleForeColor : <System.Drawing.Color> .TodayDate : <System.DateTime> .TodayDateSet
                            : <System.Boolean>, read-only .Top : <System.Int32> .TopLevelControl : <System.Windows.Forms.Control>,
                            read-only .TrailingForeColor : <System.Drawing.Color> .UseWaitCursor : <System.Boolean>
                            .Visible : <System.Boolean> .Width : <System.Int32> .WindowTarget : <System.Windows.Forms.IWindowTarget>
                            true 
                                             .BackColor : <System.Drawing.Color> .ForeColor : <System.Drawing.Color> .TitleBackColor : <System.Drawing.Color>

```

Using DotNet Color Presets

You can change the color properties of the control. First, take a look at their own properties:

``` showproperties test.f1.ForeColor --see all properties of the color .A : , read-only .AliceBlue : , read-only, static .AntiqueWhite : , read-only, static .Aqua : , read-only, static .Aquamarine : , read-only, static .Azure : , read-only, static .B : , read-only .Beige : , read-only, static .Bisque : , read-only, static .Black : , read-only, static .BlanchedAlmond : , read-only, static .Blue : , read-only, static .BlueViolet : , read-only, static .Brown : , read-only, static .BurlyWood : , read-only, static .CadetBlue : , read-only, static .Chartreuse : , read-only, static .Chocolate : , read-only, static .Coral : , read-only, static .CornflowerBlue : , read-only, static .Cornsilk : , read-only, static .Crimson : , read-only, static .Cyan : , read-only, static .DarkBlue : , read-only, static .DarkCyan : , read-only, static .DarkGoldenrod : , read-only, static .DarkGray : , read-only, static .DarkGreen : , read-only, static .DarkKhaki : , read-only, static .DarkMagenta : , read-only, static .DarkOliveGreen : , read-only, static .DarkOrange : , read-only, static .DarkOrchid : , read-only, static .DarkRed : , read-only, static .DarkSalmon : , read-only, static .DarkSeaGreen : , read-only, static .DarkSlateBlue : , read-only, static .DarkSlateGray : , read-only, static .DarkTurquoise : , read-only, static .DarkViolet : , read-only, static .DeepPink : , read-only, static .DeepSkyBlue : , read-only, static .DimGray : , read-only, static .DodgerBlue : , read-only, static .Firebrick : , read-only, static .FloralWhite : , read-only, static .ForestGreen : , read-only, static .Fuchsia : , read-only, static .G : , read-only .Gainsboro : , read-only, static .GhostWhite : , read-only, static .Gold : , read-only, static .Goldenrod : , read-only, static .Gray : , read-only, static .Green : , read-only, static .GreenYellow : , read-only, static .Honeydew : , read-only, static .HotPink : , read-only, static .IndianRed : , read-only, static .Indigo : , read-only, static .IsEmpty : , read-only .IsKnownColor : , read-only .IsNamedColor : , read-only .IsSystemColor : , read-only .Ivory : , read-only, static .Khaki : , read-only, static .Lavender : , read-only, static .LavenderBlush : , read-only, static .LawnGreen : , read-only, static .LemonChiffon : , read-only, static .LightBlue : , read-only, static .LightCoral : , read-only, static .LightCyan : , read-only, static .LightGoldenrodYellow : , read-only, static .LightGray : , read-only, static .LightGreen : , read-only, static .LightPink : , read-only, static .LightSalmon : , read-only, static .LightSeaGreen : , read-only, static .LightSkyBlue : , read-only, static .LightSlateGray : , read-only, static .LightSteelBlue : , read-only, static .LightYellow : , read-only, static .Lime : , read-only, static .LimeGreen : , read-only, static .Linen : , read-only, static .Magenta : , read-only, static .Maroon : , read-only, static .MediumAquamarine : , read-only, static .MediumBlue : , read-only, static .MediumOrchid : , read-only, static .MediumPurple : , read-only, static .MediumSeaGreen : , read-only, static .MediumSlateBlue : , read-only, static .MediumSpringGreen : , read-only, static .MediumTurquoise : , read-only, static .MediumVioletRed : , read-only, static .MidnightBlue : , read-only, static .MintCream : , read-only, static .MistyRose : , read-only, static .Moccasin : , read-only, static .Name : , read-only .NavajoWhite : , read-only, static .Navy : , read-only, static .OldLace : , read-only, static .Olive : , read-only, static .OliveDrab : , read-only, static .Orange : , read-only, static .OrangeRed : , read-only, static .Orchid : , read-only, static .PaleGoldenrod : , read-only, static .PaleGreen : , read-only, static .PaleTurquoise : , read-only, static .PaleVioletRed : , read-only, static .PapayaWhip : , read-only, static .PeachPuff : , read-only, static .Peru : , read-only, static .Pink : , read-only, static .Plum : , read-only, static .PowderBlue : , read-only, static .Purple : , read-only, static .R : , read-only .Red : , read-only, static .RosyBrown : , read-only, static .RoyalBlue : , read-only, static .SaddleBrown : , read-only, static .Salmon : , read-only, static .SandyBrown : , read-only, static .SeaGreen : , read-only, static .SeaShell : , read-only, static .Sienna : , read-only, static .Silver : , read-only, static .SkyBlue : , read-only, static .SlateBlue : , read-only, static .SlateGray : , read-only, static .Snow : , read-only, static .SpringGreen : , read-only, static .SteelBlue : , read-only, static .Tan : , read-only, static .Teal : , read-only, static .Thistle : , read-only, static .Tomato : , read-only, static .Transparent : , read-only, static .Turquoise : , read-only, static .Violet : , read-only, static .Wheat : , read-only, static .White : , read-only, static .WhiteSmoke : , read-only, static .Yellow : , read-only, static .YellowGreen : , read-only, static .Empty : , read-only, static true

```

The color property itself has properties, some of them read-only definitions of typical colors. This means that you can set the .ForeColor and .BackColor properties to the static read-only values that are already defined:

``` test.f1.ForeColor = test.f1.ForeColor.Blue --> dotNetObject:System.Drawing.Color test.f1.BackColor = test.f1.BackColor.Yellow --> dotNetObject:System.Drawing.Color test.f1.TitleBackColor = test.f1.TitleBackColor.Tomato --> dotNetObject:System.Drawing.Color

```

Using User-Defined Colors

You can create your own DotNet colors instead of using the presets.

Take a look at the methods that a System.Drawing.Color object exposes:

showMethods test.f1.backcolor .<System.Boolean>Equals <System.Object>obj .[static]<System.Boolean>Equals <System.Object>objA <System.Object>objB .[static]<System.Drawing.Color>FromArgb <System.Int32>argb .[static]<System.Drawing.Color>FromArgb <System.Int32>alpha <System.Drawing.Color>baseColor .[static]<System.Drawing.Color>FromArgb <System.Int32>alpha <System.Int32>red <System.Int32>green <System.Int32>blue .[static]<System.Drawing.Color>FromKnownColor <System.Drawing.KnownColor>color .[static]<System.Drawing.Color>FromName <System.String>name .<System.Single>GetBrightness() .<System.Int32>GetHashCode() .<System.Single>GetHue() .<System.Single>GetSaturation() .<System.Type>GetType() .[static]<System.Boolean>ReferenceEquals <System.Object>objA <System.Object>objB .<System.Int32>ToArgb() .<System.Drawing.KnownColor>ToKnownColor() .<System.String>ToString() true .[static]<System.Drawing.Color>FromArgb <System.Int32>red <System.Int32>green <System.Int32>blue

As you can see, the .FromARGB() method allows to provide Red, Green, and Blue values, and it constructs a DotNet color value:

``` test.f1.forecolor = test.f1.backcolor.FromArgb 255 255 100 test.f1.backcolor = test.f1.backcolor.FromArgb 100 200 234 dotNetObject:System.Drawing.Color

```