MAXScript Tools and Interaction with 3ds Max > DotNet In MAXScript > DotNet Examples >

# Using DotNet Forms To Create MAXScript User Interfaces

DotNet controls can not only be placed inside 3ds Max Dialogs and Rollouts, but they can also be used to generate user interfaces implemented completely using DotNet Forms.

In the following example, a DotNet Button is created and assigned to a DotNet Form including a custom function declared as event handler. Finally, the Form is displayed as a dialog by calling its .show() method.

SCRIPT
    (
    fn whenButtonIsPressed a b =
    (
    format "Pressed from a DotNet Button\n"
    format "Argument a (Form): <%> \n" (classof a)
    format "Properties:\n"
    showproperties a
    format "Methods:\n"
    showmethods a
    format "Events:\n"
    showevents a
    format "\nArgument b (Button): <%> \n" (classof b)
    format "Properties:\n"
    showproperties b
    format "Methods:\n"
    showmethods a
    format "Events:\n"
    showevents a
    )
    --Create a DotNet Button
    mButton = dotNetObject "System.Windows.Forms.Button"
    mButton.text = "BIG DotNet Button"
    mButton.size = dotNetObject "System.Drawing.Size" 160 160
    mButton.location = dotNetObject "System.Drawing.Point" 60 60
    --Create a DotNet Form
    hForm = dotNetObject "System.Windows.Forms.Form"
    hForm.controls.add mButton --add the Button to the Form
    hForm.topmost = true
    --Add an Event Handler for the click event:
    dotNet.addEventHandler mButton "click" whenButtonIsPressed
    hForm.show() --show the Form with the Button
    )

Output Of The Event Handler When Button Is Pressed:
    Pressed from a DotNet Button
    Argument a (Form): <dotNetObject>
    Properties:
    .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>
    .AutoEllipsis : <System.Boolean>
    .AutoScrollOffset : <System.Drawing.Point>
    .AutoSize : <System.Boolean>
    .AutoSizeMode : <System.Windows.Forms.AutoSizeMode>
    .BackColor : <System.Drawing.Color>
    .BackgroundImage : <System.Drawing.Image>
    .BackgroundImageLayout : <System.Windows.Forms.ImageLayout>
    .BindingContext : <System.Windows.Forms.BindingContext>
    .Bottom : <System.Int32>, read-only
    .Bounds : <System.Drawing.Rectangle>
    .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
    .DialogResult : <System.Windows.Forms.DialogResult>
    .DisplayRectangle : <System.Drawing.Rectangle>, read-only
    .Disposing : <System.Boolean>, read-only
    .Dock : <System.Windows.Forms.DockStyle>
    .Enabled : <System.Boolean>
    .FlatAppearance : <System.Windows.Forms.FlatButtonAppearance>, read-only
    .FlatStyle : <System.Windows.Forms.FlatStyle>
    .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>
    .Image : <System.Drawing.Image>
    .ImageAlign : <System.Drawing.ContentAlignment>
    .ImageIndex : <System.Int32>
    .ImageKey : <System.String>
    .ImageList : <System.Windows.Forms.ImageList>
    .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>
    .MaximumSize : <System.Drawing.Size>
    .MinimumSize : <System.Drawing.Size>
    .ModifierKeys : <System.Windows.Forms.Keys>, read-only, static
    .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>
    .Site : <System.ComponentModel.ISite>
    .Size : <System.Drawing.Size>
    .TabIndex : <System.Int32>
    .TabStop : <System.Boolean>
    .Tag : <System.Object>
    .Text : <System.String>
    .TextAlign : <System.Drawing.ContentAlignment>
    .TextImageRelation : <System.Windows.Forms.TextImageRelation>
    .Top : <System.Int32>
    .TopLevelControl : <System.Windows.Forms.Control>, read-only
    .UseCompatibleTextRendering : <System.Boolean>
    .UseMnemonic : <System.Boolean>
    .UseVisualStyleBackColor : <System.Boolean>
    .UseWaitCursor : <System.Boolean>
    .Visible : <System.Boolean>
    .Width : <System.Int32>
    .WindowTarget : <System.Windows.Forms.IWindowTarget>
    Methods:
    .<System.IAsyncResult>BeginInvoke <System.Delegate>method
    .<System.IAsyncResult>BeginInvoke <System.Delegate>method <System.Object[]>args
    .BringToFront()
    .<System.Boolean>Contains <System.Windows.Forms.Control>ctl
    .CreateControl()
    .<System.Drawing.Graphics>CreateGraphics()
    .<System.Runtime.Remoting.ObjRef>CreateObjRef <System.Type>requestedType
    .Dispose()
    .<System.Windows.Forms.DragDropEffects>DoDragDrop <System.Object>data <System.Windows.Forms.DragDropEffects>allowedEffects
    .DrawToBitmap <System.Drawing.Bitmap>bitmap <System.Drawing.Rectangle>targetBounds
    .<System.Object>EndInvoke <System.IAsyncResult>asyncResult
    .<System.Boolean>Equals <System.Object>obj
    .[static]<System.Boolean>Equals <System.Object>objA <System.Object>objB
    .<System.Windows.Forms.Form>FindForm()
    .<System.Boolean>Focus()
    .[static]<System.Windows.Forms.Control>FromChildHandle <System.IntPtr>handle
    .[static]<System.Windows.Forms.Control>FromHandle <System.IntPtr>handle
    .<System.Windows.Forms.Control>GetChildAtPoint <System.Drawing.Point>pt
    .<System.Windows.Forms.Control>GetChildAtPoint <System.Drawing.Point>pt <System.Windows.Forms.GetChildAtPointSkip>skipValue
    .<System.Windows.Forms.IContainerControl>GetContainerControl()
    .<System.Int32>GetHashCode()
    .<System.Object>GetLifetimeService()
    .<System.Windows.Forms.Control>GetNextControl <System.Windows.Forms.Control>ctl <System.Boolean>forward
    .<System.Drawing.Size>GetPreferredSize <System.Drawing.Size>proposedSize
    .<System.Type>GetType()
    .Hide()
    .<System.Object>InitializeLifetimeService()
    .Invalidate()
    .Invalidate <System.Drawing.Rectangle>rc
    .Invalidate <System.Drawing.Region>region
    .Invalidate <System.Boolean>invalidateChildren
    .Invalidate <System.Drawing.Region>region <System.Boolean>invalidateChildren
    .Invalidate <System.Drawing.Rectangle>rc <System.Boolean>invalidateChildren
    .<System.Object>Invoke <System.Delegate>method
    .<System.Object>Invoke <System.Delegate>method <System.Object[]>args
    .[static]<System.Boolean>IsKeyLocked <System.Windows.Forms.Keys>keyVal
    .[static]<System.Boolean>IsMnemonic <System.Char>charCode <System.String>text
    .NotifyDefault <System.Boolean>value
    .PerformClick()
    .PerformLayout()
    .PerformLayout <System.Windows.Forms.Control>affectedControl <System.String>affectedProperty
    .<System.Drawing.Point>PointToClient <System.Drawing.Point>p
    .<System.Drawing.Point>PointToScreen <System.Drawing.Point>p
    .<System.Windows.Forms.PreProcessControlState>PreProcessControlMessage <System.Windows.Forms.Message&>msg
    .<System.Boolean>PreProcessMessage <System.Windows.Forms.Message&>msg
    .<System.Drawing.Rectangle>RectangleToClient <System.Drawing.Rectangle>r
    .<System.Drawing.Rectangle>RectangleToScreen <System.Drawing.Rectangle>r
    .[static]<System.Boolean>ReferenceEquals <System.Object>objA <System.Object>objB
    .Refresh()
    .ResetBackColor()
    .ResetBindings()
    .ResetCursor()
    .ResetFont()
    .ResetForeColor()
    .ResetImeMode()
    .ResetRightToLeft()
    .ResetText()
    .ResumeLayout()
    .ResumeLayout <System.Boolean>performLayout
    .Scale <System.Single>ratio
    .Scale <System.Drawing.SizeF>factor
    .Scale <System.Single>dx <System.Single>dy
    .Select()
    .<System.Boolean>SelectNextControl <System.Windows.Forms.Control>ctl <System.Boolean>forward <System.Boolean>tabStopOnly <System.Boolean>nested <System.Boolean>wrap
    .SendToBack()
    .SetBounds <System.Int32>x <System.Int32>y <System.Int32>width <System.Int32>height
    .SetBounds <System.Int32>x <System.Int32>y <System.Int32>width <System.Int32>height <System.Windows.Forms.BoundsSpecified>specified
    .Show()
    .SuspendLayout()
    .<System.String>ToString()
    .Update()
    Events:
    on <control_name> AutoSizeChanged <System.EventArgs>e do ( ... )
    on <control_name> BackColorChanged <System.EventArgs>e do ( ... )
    on <control_name> BackgroundImageChanged <System.EventArgs>e do ( ... )
    on <control_name> BackgroundImageLayoutChanged <System.EventArgs>e do ( ... )
    on <control_name> BindingContextChanged <System.EventArgs>e do ( ... )
    on <control_name> CausesValidationChanged <System.EventArgs>e do ( ... )
    on <control_name> ChangeUICues <System.Windows.Forms.UICuesEventArgs>e do ( ... )
    on <control_name> Click <System.EventArgs>e do ( ... )
    on <control_name> ClientSizeChanged <System.EventArgs>e do ( ... )
    on <control_name> ContextMenuChanged <System.EventArgs>e do ( ... )
    on <control_name> ContextMenuStripChanged <System.EventArgs>e do ( ... )
    on <control_name> ControlAdded <System.Windows.Forms.ControlEventArgs>e do ( ... )
    on <control_name> ControlRemoved <System.Windows.Forms.ControlEventArgs>e do ( ... )
    on <control_name> CursorChanged <System.EventArgs>e do ( ... )
    on <control_name> Disposed <System.EventArgs>e do ( ... )
    on <control_name> DockChanged <System.EventArgs>e do ( ... )
    on <control_name> DoubleClick <System.EventArgs>e do ( ... )
    on <control_name> DragDrop <System.Windows.Forms.DragEventArgs>e do ( ... )
    on <control_name> DragEnter <System.Windows.Forms.DragEventArgs>e do ( ... )
    on <control_name> DragLeave <System.EventArgs>e do ( ... )
    on <control_name> DragOver <System.Windows.Forms.DragEventArgs>e do ( ... )
    on <control_name> EnabledChanged <System.EventArgs>e do ( ... )
    on <control_name> Enter <System.EventArgs>e do ( ... )
    on <control_name> FontChanged <System.EventArgs>e do ( ... )
    on <control_name> ForeColorChanged <System.EventArgs>e do ( ... )
    on <control_name> GiveFeedback <System.Windows.Forms.GiveFeedbackEventArgs>e do ( ... )
    on <control_name> GotFocus <System.EventArgs>e do ( ... )
    on <control_name> HandleCreated <System.EventArgs>e do ( ... )
    on <control_name> HandleDestroyed <System.EventArgs>e do ( ... )
    on <control_name> HelpRequested <System.Windows.Forms.HelpEventArgs>hlpevent do ( ... )
    on <control_name> ImeModeChanged <System.EventArgs>e do ( ... )
    on <control_name> Invalidated <System.Windows.Forms.InvalidateEventArgs>e do ( ... )
    on <control_name> KeyDown <System.Windows.Forms.KeyEventArgs>e do ( ... )
    on <control_name> KeyPress <System.Windows.Forms.KeyPressEventArgs>e do ( ... )
    on <control_name> KeyUp <System.Windows.Forms.KeyEventArgs>e do ( ... )
    on <control_name> Layout <System.Windows.Forms.LayoutEventArgs>e do ( ... )
    on <control_name> Leave <System.EventArgs>e do ( ... )
    on <control_name> LocationChanged <System.EventArgs>e do ( ... )
    on <control_name> LostFocus <System.EventArgs>e do ( ... )
    on <control_name> MarginChanged <System.EventArgs>e do ( ... )
    on <control_name> MouseCaptureChanged <System.EventArgs>e do ( ... )
    on <control_name> MouseClick <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseDoubleClick <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseDown <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseEnter <System.EventArgs>e do ( ... )
    on <control_name> MouseHover <System.EventArgs>e do ( ... )
    on <control_name> MouseLeave <System.EventArgs>e do ( ... )
    on <control_name> MouseMove <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseUp <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseWheel <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> Move <System.EventArgs>e do ( ... )
    on <control_name> PaddingChanged <System.EventArgs>e do ( ... )
    on <control_name> Paint <System.Windows.Forms.PaintEventArgs>e do ( ... )
    on <control_name> ParentChanged <System.EventArgs>e do ( ... )
    on <control_name> PreviewKeyDown <System.Windows.Forms.PreviewKeyDownEventArgs>e do ( ... )
    on <control_name> QueryAccessibilityHelp <System.Windows.Forms.QueryAccessibilityHelpEventArgs>e do ( ... )
    on <control_name> QueryContinueDrag <System.Windows.Forms.QueryContinueDragEventArgs>e do ( ... )
    on <control_name> RegionChanged <System.EventArgs>e do ( ... )
    on <control_name> Resize <System.EventArgs>e do ( ... )
    on <control_name> RightToLeftChanged <System.EventArgs>e do ( ... )
    on <control_name> SizeChanged <System.EventArgs>e do ( ... )
    on <control_name> StyleChanged <System.EventArgs>e do ( ... )
    on <control_name> SystemColorsChanged <System.EventArgs>e do ( ... )
    on <control_name> TabIndexChanged <System.EventArgs>e do ( ... )
    on <control_name> TabStopChanged <System.EventArgs>e do ( ... )
    on <control_name> TextChanged <System.EventArgs>e do ( ... )
    on <control_name> Validated <System.EventArgs>e do ( ... )
    on <control_name> Validating <System.ComponentModel.CancelEventArgs>e do ( ... )
    on <control_name> VisibleChanged <System.EventArgs>e do ( ... )
    Argument b (Button): <dotNetObject>
    Properties:
    .Button : <System.Windows.Forms.MouseButtons>, read-only
    .Clicks : <System.Int32>, read-only
    .Delta : <System.Int32>, read-only
    .Location : <System.Drawing.Point>, read-only
    .X : <System.Int32>, read-only
    .Y : <System.Int32>, read-only
    .Empty : <System.EventArgs>, read-only, static
    Methods:
    .<System.IAsyncResult>BeginInvoke <System.Delegate>method
    .<System.IAsyncResult>BeginInvoke <System.Delegate>method <System.Object[]>args
    .BringToFront()
    .<System.Boolean>Contains <System.Windows.Forms.Control>ctl
    .CreateControl()
    .<System.Drawing.Graphics>CreateGraphics()
    .<System.Runtime.Remoting.ObjRef>CreateObjRef <System.Type>requestedType
    .Dispose()
    .<System.Windows.Forms.DragDropEffects>DoDragDrop <System.Object>data <System.Windows.Forms.DragDropEffects>allowedEffects
    .DrawToBitmap <System.Drawing.Bitmap>bitmap <System.Drawing.Rectangle>targetBounds
    .<System.Object>EndInvoke <System.IAsyncResult>asyncResult
    .<System.Boolean>Equals <System.Object>obj
    .[static]<System.Boolean>Equals <System.Object>objA <System.Object>objB
    .<System.Windows.Forms.Form>FindForm()
    .<System.Boolean>Focus()
    .[static]<System.Windows.Forms.Control>FromChildHandle <System.IntPtr>handle
    .[static]<System.Windows.Forms.Control>FromHandle <System.IntPtr>handle
    .<System.Windows.Forms.Control>GetChildAtPoint <System.Drawing.Point>pt
    .<System.Windows.Forms.Control>GetChildAtPoint <System.Drawing.Point>pt <System.Windows.Forms.GetChildAtPointSkip>skipValue
    .<System.Windows.Forms.IContainerControl>GetContainerControl()
    .<System.Int32>GetHashCode()
    .<System.Object>GetLifetimeService()
    .<System.Windows.Forms.Control>GetNextControl <System.Windows.Forms.Control>ctl <System.Boolean>forward
    .<System.Drawing.Size>GetPreferredSize <System.Drawing.Size>proposedSize
    .<System.Type>GetType()
    .Hide()
    .<System.Object>InitializeLifetimeService()
    .Invalidate()
    .Invalidate <System.Drawing.Rectangle>rc
    .Invalidate <System.Drawing.Region>region
    .Invalidate <System.Boolean>invalidateChildren
    .Invalidate <System.Drawing.Region>region <System.Boolean>invalidateChildren
    .Invalidate <System.Drawing.Rectangle>rc <System.Boolean>invalidateChildren
    .<System.Object>Invoke <System.Delegate>method
    .<System.Object>Invoke <System.Delegate>method <System.Object[]>args
    .[static]<System.Boolean>IsKeyLocked <System.Windows.Forms.Keys>keyVal
    .[static]<System.Boolean>IsMnemonic <System.Char>charCode <System.String>text
    .NotifyDefault <System.Boolean>value
    .PerformClick()
    .PerformLayout()
    .PerformLayout <System.Windows.Forms.Control>affectedControl <System.String>affectedProperty
    .<System.Drawing.Point>PointToClient <System.Drawing.Point>p
    .<System.Drawing.Point>PointToScreen <System.Drawing.Point>p
    .<System.Windows.Forms.PreProcessControlState>PreProcessControlMessage <System.Windows.Forms.Message&>msg
    .<System.Boolean>PreProcessMessage <System.Windows.Forms.Message&>msg
    .<System.Drawing.Rectangle>RectangleToClient <System.Drawing.Rectangle>r
    .<System.Drawing.Rectangle>RectangleToScreen <System.Drawing.Rectangle>r
    .[static]<System.Boolean>ReferenceEquals <System.Object>objA <System.Object>objB
    .Refresh()
    .ResetBackColor()
    .ResetBindings()
    .ResetCursor()
    .ResetFont()
    .ResetForeColor()
    .ResetImeMode()
    .ResetRightToLeft()
    .ResetText()
    .ResumeLayout()
    .ResumeLayout <System.Boolean>performLayout
    .Scale <System.Single>ratio
    .Scale <System.Drawing.SizeF>factor
    .Scale <System.Single>dx <System.Single>dy
    .Select()
    .<System.Boolean>SelectNextControl <System.Windows.Forms.Control>ctl <System.Boolean>forward <System.Boolean>tabStopOnly <System.Boolean>nested <System.Boolean>wrap
    .SendToBack()
    .SetBounds <System.Int32>x <System.Int32>y <System.Int32>width <System.Int32>height
    .SetBounds <System.Int32>x <System.Int32>y <System.Int32>width <System.Int32>height <System.Windows.Forms.BoundsSpecified>specified
    .Show()
    .SuspendLayout()
    .<System.String>ToString()
    .Update()
    Events:
    on <control_name> AutoSizeChanged <System.EventArgs>e do ( ... )
    on <control_name> BackColorChanged <System.EventArgs>e do ( ... )
    on <control_name> BackgroundImageChanged <System.EventArgs>e do ( ... )
    on <control_name> BackgroundImageLayoutChanged <System.EventArgs>e do ( ... )
    on <control_name> BindingContextChanged <System.EventArgs>e do ( ... )
    on <control_name> CausesValidationChanged <System.EventArgs>e do ( ... )
    on <control_name> ChangeUICues <System.Windows.Forms.UICuesEventArgs>e do ( ... )
    on <control_name> Click <System.EventArgs>e do ( ... )
    on <control_name> ClientSizeChanged <System.EventArgs>e do ( ... )
    on <control_name> ContextMenuChanged <System.EventArgs>e do ( ... )
    on <control_name> ContextMenuStripChanged <System.EventArgs>e do ( ... )
    on <control_name> ControlAdded <System.Windows.Forms.ControlEventArgs>e do ( ... )
    on <control_name> ControlRemoved <System.Windows.Forms.ControlEventArgs>e do ( ... )
    on <control_name> CursorChanged <System.EventArgs>e do ( ... )
    on <control_name> Disposed <System.EventArgs>e do ( ... )
    on <control_name> DockChanged <System.EventArgs>e do ( ... )
    on <control_name> DoubleClick <System.EventArgs>e do ( ... )
    on <control_name> DragDrop <System.Windows.Forms.DragEventArgs>e do ( ... )
    on <control_name> DragEnter <System.Windows.Forms.DragEventArgs>e do ( ... )
    on <control_name> DragLeave <System.EventArgs>e do ( ... )
    on <control_name> DragOver <System.Windows.Forms.DragEventArgs>e do ( ... )
    on <control_name> EnabledChanged <System.EventArgs>e do ( ... )
    on <control_name> Enter <System.EventArgs>e do ( ... )
    on <control_name> FontChanged <System.EventArgs>e do ( ... )
    on <control_name> ForeColorChanged <System.EventArgs>e do ( ... )
    on <control_name> GiveFeedback <System.Windows.Forms.GiveFeedbackEventArgs>e do ( ... )
    on <control_name> GotFocus <System.EventArgs>e do ( ... )
    on <control_name> HandleCreated <System.EventArgs>e do ( ... )
    on <control_name> HandleDestroyed <System.EventArgs>e do ( ... )
    on <control_name> HelpRequested <System.Windows.Forms.HelpEventArgs>hlpevent do ( ... )
    on <control_name> ImeModeChanged <System.EventArgs>e do ( ... )
    on <control_name> Invalidated <System.Windows.Forms.InvalidateEventArgs>e do ( ... )
    on <control_name> KeyDown <System.Windows.Forms.KeyEventArgs>e do ( ... )
    on <control_name> KeyPress <System.Windows.Forms.KeyPressEventArgs>e do ( ... )
    on <control_name> KeyUp <System.Windows.Forms.KeyEventArgs>e do ( ... )
    on <control_name> Layout <System.Windows.Forms.LayoutEventArgs>e do ( ... )
    on <control_name> Leave <System.EventArgs>e do ( ... )
    on <control_name> LocationChanged <System.EventArgs>e do ( ... )
    on <control_name> LostFocus <System.EventArgs>e do ( ... )
    on <control_name> MarginChanged <System.EventArgs>e do ( ... )
    on <control_name> MouseCaptureChanged <System.EventArgs>e do ( ... )
    on <control_name> MouseClick <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseDoubleClick <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseDown <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseEnter <System.EventArgs>e do ( ... )
    on <control_name> MouseHover <System.EventArgs>e do ( ... )
    on <control_name> MouseLeave <System.EventArgs>e do ( ... )
    on <control_name> MouseMove <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseUp <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> MouseWheel <System.Windows.Forms.MouseEventArgs>e do ( ... )
    on <control_name> Move <System.EventArgs>e do ( ... )
    on <control_name> PaddingChanged <System.EventArgs>e do ( ... )
    on <control_name> Paint <System.Windows.Forms.PaintEventArgs>e do ( ... )
    on <control_name> ParentChanged <System.EventArgs>e do ( ... )
    on <control_name> PreviewKeyDown <System.Windows.Forms.PreviewKeyDownEventArgs>e do ( ... )
    on <control_name> QueryAccessibilityHelp <System.Windows.Forms.QueryAccessibilityHelpEventArgs>e do ( ... )
    on <control_name> QueryContinueDrag <System.Windows.Forms.QueryContinueDragEventArgs>e do ( ... )
    on <control_name> RegionChanged <System.EventArgs>e do ( ... )
    on <control_name> Resize <System.EventArgs>e do ( ... )
    on <control_name> RightToLeftChanged <System.EventArgs>e do ( ... )
    on <control_name> SizeChanged <System.EventArgs>e do ( ... )
    on <control_name> StyleChanged <System.EventArgs>e do ( ... )
    on <control_name> SystemColorsChanged <System.EventArgs>e do ( ... )
    on <control_name> TabIndexChanged <System.EventArgs>e do ( ... )
    on <control_name> TabStopChanged <System.EventArgs>e do ( ... )
    on <control_name> TextChanged <System.EventArgs>e do ( ... )
    on <control_name> Validated <System.EventArgs>e do ( ... )
    on <control_name> Validating <System.ComponentModel.CancelEventArgs>e do ( ... )
    on <control_name> VisibleChanged <System.EventArgs>e do ( ... )

Using this output, you can easily see what Properties, Methods and Events are available for each control and implement additional functionality to extend the script, change the appearance and behaviour of the DotNet controls and so on.

#### See Also

- DotNet In MAXScript