Creating A Simple DotNet MonthCalendar And Changing Its Colors

new.gif NEW in 3ds Max 9: The following example creates a simple dialog with a MonthCalendar dotNet control and assigns a mousedown event handler which prints the properties, methods and events:

Script:

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, we have a dialog showing a Month Calendar DotNet Contol with default settings. We can see the constructor of the control using the dotnet.showconstructors() method:

--see the constructor of the control

dotnet.showConstructors test.f1

System.Windows.Forms.MonthCalendar()

true

 

dotNet_MonthCalendar_Default.gif

 

Now let's change the calendar's appearance by modifying its colors:

--First we list all properties of the control

--and look to find those controlling some of its colors:

showproperties test.f1

.AccessibilityObject : <System.Windows.Forms.AccessibleObject>, read-only

.AccessibleDefaultActionDescription : <System.String>

.AccessibleDescription : <System.String>

.AccessibleName : <System.String>

.AccessibleRole : <System.Windows.Forms.AccessibleRole>

.AllowDrop : <System.Boolean>

.Anchor : <System.Windows.Forms.AnchorStyles>

.AnnuallyBoldedDates : <System.DateTime[]>

.AutoScrollOffset : <System.Drawing.Point>

.AutoSize : <System.Boolean>

.BackColor : <System.Drawing.Color>

.BackgroundImage : <System.Drawing.Image>

.BackgroundImageLayout : <System.Windows.Forms.ImageLayout>

.BindingContext : <System.Windows.Forms.BindingContext>

.BoldedDates : <System.DateTime[]>

.Bottom : <System.Int32>, read-only

.Bounds : <System.Drawing.Rectangle>

.CalendarDimensions : <System.Drawing.Size>

.CanFocus : <System.Boolean>, read-only

.CanSelect : <System.Boolean>, read-only

.Capture : <System.Boolean>

.CausesValidation : <System.Boolean>

.CheckForIllegalCrossThreadCalls : <System.Boolean>, static

.ClientRectangle : <System.Drawing.Rectangle>, read-only

.ClientSize : <System.Drawing.Size>

.CompanyName : <System.String>, read-only

.Container : <System.ComponentModel.IContainer>, read-only

.ContainsFocus : <System.Boolean>, read-only

.ContextMenu : <System.Windows.Forms.ContextMenu>

.ContextMenuStrip : <System.Windows.Forms.ContextMenuStrip>

.Controls : <System.Windows.Forms.Control+ControlCollection>, read-only

.Created : <System.Boolean>, read-only

.Cursor : <System.Windows.Forms.Cursor>

.DataBindings : <System.Windows.Forms.ControlBindingsCollection>, read-only

.DefaultBackColor : <System.Drawing.Color>, read-only, static

.DefaultFont : <System.Drawing.Font>, read-only, static

.DefaultForeColor : <System.Drawing.Color>, read-only, static

.DisplayRectangle : <System.Drawing.Rectangle>, read-only

.Disposing : <System.Boolean>, read-only

.Dock : <System.Windows.Forms.DockStyle>

.Enabled : <System.Boolean>

.FirstDayOfWeek : <System.Windows.Forms.Day>

.Focused : <System.Boolean>, read-only

.Font : <System.Drawing.Font>

.ForeColor : <System.Drawing.Color>

.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>

.TitleBackColor : <System.Drawing.Color>

.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

 

 

We want to change the color properties of the control.
Let's take a look at their
own properties first:

showproperties test.f1.ForeColor --see all properties of the color

.A : <System.Byte>, read-only

.AliceBlue : <System.Drawing.Color>, read-only, static

.AntiqueWhite : <System.Drawing.Color>, read-only, static

.Aqua : <System.Drawing.Color>, read-only, static

.Aquamarine : <System.Drawing.Color>, read-only, static

.Azure : <System.Drawing.Color>, read-only, static

.B : <System.Byte>, read-only

.Beige : <System.Drawing.Color>, read-only, static

.Bisque : <System.Drawing.Color>, read-only, static

.Black : <System.Drawing.Color>, read-only, static

.BlanchedAlmond : <System.Drawing.Color>, read-only, static

.Blue : <System.Drawing.Color>, read-only, static

.BlueViolet : <System.Drawing.Color>, read-only, static

.Brown : <System.Drawing.Color>, read-only, static

.BurlyWood : <System.Drawing.Color>, read-only, static

.CadetBlue : <System.Drawing.Color>, read-only, static

.Chartreuse : <System.Drawing.Color>, read-only, static

.Chocolate : <System.Drawing.Color>, read-only, static

.Coral : <System.Drawing.Color>, read-only, static

.CornflowerBlue : <System.Drawing.Color>, read-only, static

.Cornsilk : <System.Drawing.Color>, read-only, static

.Crimson : <System.Drawing.Color>, read-only, static

.Cyan : <System.Drawing.Color>, read-only, static

.DarkBlue : <System.Drawing.Color>, read-only, static

.DarkCyan : <System.Drawing.Color>, read-only, static

.DarkGoldenrod : <System.Drawing.Color>, read-only, static

.DarkGray : <System.Drawing.Color>, read-only, static

.DarkGreen : <System.Drawing.Color>, read-only, static

.DarkKhaki : <System.Drawing.Color>, read-only, static

.DarkMagenta : <System.Drawing.Color>, read-only, static

.DarkOliveGreen : <System.Drawing.Color>, read-only, static

.DarkOrange : <System.Drawing.Color>, read-only, static

.DarkOrchid : <System.Drawing.Color>, read-only, static

.DarkRed : <System.Drawing.Color>, read-only, static

.DarkSalmon : <System.Drawing.Color>, read-only, static

.DarkSeaGreen : <System.Drawing.Color>, read-only, static

.DarkSlateBlue : <System.Drawing.Color>, read-only, static

.DarkSlateGray : <System.Drawing.Color>, read-only, static

.DarkTurquoise : <System.Drawing.Color>, read-only, static

.DarkViolet : <System.Drawing.Color>, read-only, static

.DeepPink : <System.Drawing.Color>, read-only, static

.DeepSkyBlue : <System.Drawing.Color>, read-only, static

.DimGray : <System.Drawing.Color>, read-only, static

.DodgerBlue : <System.Drawing.Color>, read-only, static

.Firebrick : <System.Drawing.Color>, read-only, static

.FloralWhite : <System.Drawing.Color>, read-only, static

.ForestGreen : <System.Drawing.Color>, read-only, static

.Fuchsia : <System.Drawing.Color>, read-only, static

.G : <System.Byte>, read-only

.Gainsboro : <System.Drawing.Color>, read-only, static

.GhostWhite : <System.Drawing.Color>, read-only, static

.Gold : <System.Drawing.Color>, read-only, static

.Goldenrod : <System.Drawing.Color>, read-only, static

.Gray : <System.Drawing.Color>, read-only, static

.Green : <System.Drawing.Color>, read-only, static

.GreenYellow : <System.Drawing.Color>, read-only, static

.Honeydew : <System.Drawing.Color>, read-only, static

.HotPink : <System.Drawing.Color>, read-only, static

.IndianRed : <System.Drawing.Color>, read-only, static

.Indigo : <System.Drawing.Color>, read-only, static

.IsEmpty : <System.Boolean>, read-only

.IsKnownColor : <System.Boolean>, read-only

.IsNamedColor : <System.Boolean>, read-only

.IsSystemColor : <System.Boolean>, read-only

.Ivory : <System.Drawing.Color>, read-only, static

.Khaki : <System.Drawing.Color>, read-only, static

.Lavender : <System.Drawing.Color>, read-only, static

.LavenderBlush : <System.Drawing.Color>, read-only, static

.LawnGreen : <System.Drawing.Color>, read-only, static

.LemonChiffon : <System.Drawing.Color>, read-only, static

.LightBlue : <System.Drawing.Color>, read-only, static

.LightCoral : <System.Drawing.Color>, read-only, static

.LightCyan : <System.Drawing.Color>, read-only, static

.LightGoldenrodYellow : <System.Drawing.Color>, read-only, static

.LightGray : <System.Drawing.Color>, read-only, static

.LightGreen : <System.Drawing.Color>, read-only, static

.LightPink : <System.Drawing.Color>, read-only, static

.LightSalmon : <System.Drawing.Color>, read-only, static

.LightSeaGreen : <System.Drawing.Color>, read-only, static

.LightSkyBlue : <System.Drawing.Color>, read-only, static

.LightSlateGray : <System.Drawing.Color>, read-only, static

.LightSteelBlue : <System.Drawing.Color>, read-only, static

.LightYellow : <System.Drawing.Color>, read-only, static

.Lime : <System.Drawing.Color>, read-only, static

.LimeGreen : <System.Drawing.Color>, read-only, static

.Linen : <System.Drawing.Color>, read-only, static

.Magenta : <System.Drawing.Color>, read-only, static

.Maroon : <System.Drawing.Color>, read-only, static

.MediumAquamarine : <System.Drawing.Color>, read-only, static

.MediumBlue : <System.Drawing.Color>, read-only, static

.MediumOrchid : <System.Drawing.Color>, read-only, static

.MediumPurple : <System.Drawing.Color>, read-only, static

.MediumSeaGreen : <System.Drawing.Color>, read-only, static

.MediumSlateBlue : <System.Drawing.Color>, read-only, static

.MediumSpringGreen : <System.Drawing.Color>, read-only, static

.MediumTurquoise : <System.Drawing.Color>, read-only, static

.MediumVioletRed : <System.Drawing.Color>, read-only, static

.MidnightBlue : <System.Drawing.Color>, read-only, static

.MintCream : <System.Drawing.Color>, read-only, static

.MistyRose : <System.Drawing.Color>, read-only, static

.Moccasin : <System.Drawing.Color>, read-only, static

.Name : <System.String>, read-only

.NavajoWhite : <System.Drawing.Color>, read-only, static

.Navy : <System.Drawing.Color>, read-only, static

.OldLace : <System.Drawing.Color>, read-only, static

.Olive : <System.Drawing.Color>, read-only, static

.OliveDrab : <System.Drawing.Color>, read-only, static

.Orange : <System.Drawing.Color>, read-only, static

.OrangeRed : <System.Drawing.Color>, read-only, static

.Orchid : <System.Drawing.Color>, read-only, static

.PaleGoldenrod : <System.Drawing.Color>, read-only, static

.PaleGreen : <System.Drawing.Color>, read-only, static

.PaleTurquoise : <System.Drawing.Color>, read-only, static

.PaleVioletRed : <System.Drawing.Color>, read-only, static

.PapayaWhip : <System.Drawing.Color>, read-only, static

.PeachPuff : <System.Drawing.Color>, read-only, static

.Peru : <System.Drawing.Color>, read-only, static

.Pink : <System.Drawing.Color>, read-only, static

.Plum : <System.Drawing.Color>, read-only, static

.PowderBlue : <System.Drawing.Color>, read-only, static

.Purple : <System.Drawing.Color>, read-only, static

.R : <System.Byte>, read-only

.Red : <System.Drawing.Color>, read-only, static

.RosyBrown : <System.Drawing.Color>, read-only, static

.RoyalBlue : <System.Drawing.Color>, read-only, static

.SaddleBrown : <System.Drawing.Color>, read-only, static

.Salmon : <System.Drawing.Color>, read-only, static

.SandyBrown : <System.Drawing.Color>, read-only, static

.SeaGreen : <System.Drawing.Color>, read-only, static

.SeaShell : <System.Drawing.Color>, read-only, static

.Sienna : <System.Drawing.Color>, read-only, static

.Silver : <System.Drawing.Color>, read-only, static

.SkyBlue : <System.Drawing.Color>, read-only, static

.SlateBlue : <System.Drawing.Color>, read-only, static

.SlateGray : <System.Drawing.Color>, read-only, static

.Snow : <System.Drawing.Color>, read-only, static

.SpringGreen : <System.Drawing.Color>, read-only, static

.SteelBlue : <System.Drawing.Color>, read-only, static

.Tan : <System.Drawing.Color>, read-only, static

.Teal : <System.Drawing.Color>, read-only, static

.Thistle : <System.Drawing.Color>, read-only, static

.Tomato : <System.Drawing.Color>, read-only, static

.Transparent : <System.Drawing.Color>, read-only, static

.Turquoise : <System.Drawing.Color>, read-only, static

.Violet : <System.Drawing.Color>, read-only, static

.Wheat : <System.Drawing.Color>, read-only, static

.White : <System.Drawing.Color>, read-only, static

.WhiteSmoke : <System.Drawing.Color>, read-only, static

.Yellow : <System.Drawing.Color>, read-only, static

.YellowGreen : <System.Drawing.Color>, read-only, static

.Empty : <System.Drawing.Color>, read-only, static

true

 

Looks like the color property itself has properties, some of them read-only definitions of typical colors! This means that we can set the .ForeColor and .BackColor properties to the static read-only values they 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

 

dotNet_MonthCalendar_Colored.gif

 

See also

DotNet In MAXScript