Using DotNet Forms To Create MAXScript User Interfaces

DotNet controls cannot 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 an 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.