MouseMove Event in Windows Form Using F#

Introduction

This article explains the MouseMove Event and how to draw various types of shapes in a Windows Forms application using the MouseMove Event. The MouseMove event is raised on an event of the specified selected control.

MouseMove Event

The MouseMove Event is used when the mouse pointer is moved to a selected area of the control or an event occurs when the mouse pointer moves inside the element.

MouseMove Event Members

  • X: The X-CORDINATE of the mouse click.
  • Y: The Y-CORDINATE of the mouse click.
  • Button: Indicates which mouse button was pressed.
  • Delta: Indicates a signed count of the number of detents the mouse wheel has rotated.
  • Clicks: Indicates the number of times the mouse button was pressed and released.

Now  I will show you how to use the MouseMove Event in a Windows Forms application. Use the following procedure to create a sample of that.

Step 1:

Open Visual Studio then select "Create New Project" -->"F# Console Application".

CreateApplication

Step 2:

Now go to the Solution Explorer, on the right side of the application. Right-click on "References" and select "Add references".

SelectReferences

 

AddReferences

Step 3:

After selecting "Add References", in the framework template you need to select "System.Windows.Forms" and System.Drawing while holding down the Ctrl key and click on "Ok".

ImportNamespaces

Step 4:

Write the following code for moving the mouse in an Arc shape in  the F# editor.

open System  

open System.Windows.Forms  

open System.Drawing  

let drawarcform = new Form(Text="Draw Arc MouseMoves")  

drawarcform.BackColor<-Color.Gray

let exitbutton=new Button(Top=200,Left=200)

exitbutton.Text<-"Exit"  

exitbutton.BackColor<-Color.Ivory

let crgrphics=drawarcform.CreateGraphics()  

drawarcform.Controls.Add(exitbutton)  

drawarcform.MouseMove.Add(fun move->crgrphics.DrawArc(Pens.Violet,new Rectangle(move.X,move.Y,15,15),200.0f,-200.0f))                                                                                                                 

exitbutton.Click.Add(fun close->drawarcform.Close())                                                            

Application.Run(drawarcform)

Step 5:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application the output will be as in the following figure:

DrawArc

Step 6:

Write the following code for moving the mouse in a Rectangle shape in  the F# editor.

open System  

open System.Windows.Forms  

open System.Drawing  

let drawrectangleform = new Form(Text="Draw Rectangle MouseMoves")  

drawrectangleform.BackColor<-Color.Gray

let exitbutton=new Button(Top=200,Left=200)

exitbutton.Text<-"Exit"  

exitbutton.BackColor<-Color.Ivory

let crgraphics=drawrectangleform.CreateGraphics()  

drawrectangleform.Controls.Add(exitbutton)  

drawrectangleform.MouseMove.Add(fun move->crgraphics.DrawRectangle(Pens.DarkBlue,new Rectangle(move.X,move.Y,10,10)))                                                                                                                      

exitbutton.Click.Add(fun close->drawrectangleform.Close())                                                            

Application.Run(drawrectangleform) 

Step 7:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application the output will be as in the following figure:

DrawRectangle

Step 8:

Write the following code to move the mouse in an Ellipse shape in  the F# editor.

 

open System  

open System.Windows.Forms  

open System.Drawing  

let drawellipseform = new Form(Text="Draw Ellipse MouseMoves")  

drawellipseform.BackColor<-Color.Gray

let exitbutton=new Button(Top=200,Left=200)  

exitbutton.Text<-"Exit"

exitbutton.BackColor<-Color.Ivory

let crgraphics=drawellipseform.CreateGraphics()  

drawellipseform.Controls.Add(exitbutton)  

drawellipseform.MouseMove.Add(fun move->crgraphics.DrawEllipse(Pens.Black,new Rectangle(move.X,move.Y,15,15)))                                                                                                                      

exitbutton.Click.Add(fun close->drawellipseform.Close())                                                            

Application.Run(drawellipseform)  

Step 9:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application the output will be as in the following figure:

DrawEllipse

Step 10:

Write the following code to move the mouse in a DrawLine shape in  the F# editor.

 

open System  

open System.Windows.Forms  

open System.Drawing  

let drawlineform = new Form(Text="DrawLines MouseMoves")  

drawlineform.BackColor<-Color.Gray

let exitbutton=new Button(Top=200,Left=200)  

exitbutton.Text<-"Exit"

exitbutton.BackColor<-Color.Ivory

let crgraphics=drawlineform.CreateGraphics()  

drawlineform.Controls.Add(exitbutton)  

drawlineform.MouseMove.Add(fun move->gr.DrawLine(Pens.Red,move.X,move.Y,move.X+5,move.Y+5))                                                                                                                  

exitbutton.Click.Add(fun close->drawlineform.Close())                                                            

Application.Run(drawlineform)  

Step 11:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application the output will be as in the following figure:

DrawLines

Step 12:

Write the following code to move the mouse in a FillArc shape in the F# editor.

 

open System  

open System.Windows.Forms  

open System.Drawing  

let drawfillpieform = new Form(Text="Draw FilPie MouseMouse")  

drawfillpieform.BackColor<-Color.Gray

let exitbutton=new Button(Top=200,Left=200)

exitbutton.Text<-"Exit"  

exitbutton.BackColor<-Color.Ivory

let crgraphics=drawfillpieform.CreateGraphics()  

drawfillpieform.Controls.Add(exitbutton)  

drawfillpieform.MouseMove.Add(fun move->crgraphics.FillPie(Brushes.MidnightBlue,new Rectangle(move.X,move.Y,15,15),170.0f,170.0f))                                                                                                                 

exitbutton.Click.Add(fun close->drawfillpieform.Close())                                                            

Application.Run(drawfillpieform)  

Step 13:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application the output will be as in the following figure:

FillArc

Step 14:

Write the following code to move the mouse in an FillEllipse shape in the F# editor.

 

open System  

open System.Windows.Forms  

open System.Drawing  

let fillellipseform = new Form(Text="Draw FillEllipse MouseMove")  

fillellipseform.BackColor<-Color.Gray

let exitbutton=new Button(Top=200,Left=200)

exitbutton.Text<-"Exit"  

exitbutton.BackColor<-Color.Ivory

let crgraphics=fillellipseform.CreateGraphics()  

fillellipseform.Controls.Add(exitbutton)  

fillellipseform.MouseMove.Add(fun move->crgraphics.FillEllipse(Brushes.Red,new Rectangle(move.X,move.Y,15,15)))                                                                                                                 

exitbutton.Click.Add(fun close->fillellipseform.Close())                                                            

Application.Run(fillellipseform)  

Step 15:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application the output will be as in the following figure:

FillEllipse

Step 16:

Write the following code to move the mouse in a FillRectangle shape in the F# editor.

open System  

open System.Windows.Forms  

open System.Drawing  

let fillrecform = new Form(Text="Draw FillRectangle MouseMove")  

fillrecform.BackColor<-Color.Gray

let exitbutton=new Button(Top=200,Left=200)

exitbutton.Text<-"Exit"  

exitbutton.BackColor<-Color.Ivory

let crgraphics=fillrecform.CreateGraphics()  

fillrecform.Controls.Add(exitbutton)  

fillrecform.MouseMove.Add(fun move->crgraphics.FillRectangle(Brushes.Indigo,new Rectangle(move.X,move.Y,15,15)))                                                                                                                 

exitbutton.Click.Add(fun close->fillrecform.Close())                                                             

Application.Run(fillrecform)  

Step 17:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application the output will be as in the following figure:

FillRectangle

Summary

This article explained the MouseMove Event and how to draw various types of shapes and fill the shapes in a Windows Forms application using the MouseMove Event.

Up Next
    Ebook Download
    View all
    Learn
    View all