Introduction

In this article I have explained the cursor class and the properties of the cursor class. We then explain how to create a cursors in a Windows Forms application. Windows provides a set of standard cursors that are available for any application to use at run time.

Cursor

A Cursor is a visual representation on the windows screen that is controlled by a pointing device such as a mouse, pen, trackball. When the user moves the mouse the cursor moves accordingly. A Cursor is used to point to the object, click and drag the items in Windows applications.

Cursors Class

The Cursors class provides a set of cursors that can be used in Windows Forms. Each cursor is represented by a static property. The Cursor class represents the small picture for the mouse pointer to describe the pointing object.

Properties of Cursor Class

Now I want to show you the various types of cursors in Windows Forms applications; just use the following procedure.

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. Select the references and right-click on it and select "Add references".

SelectRefrences


AddRefrences

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

ImortNamespaces

Step 4:

Write the following code in the F# editor:

open System

open System.Drawing

open System.Windows.Forms

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

let mycursorsform=new Form(Text="Cursors")

let handlbl=new Label(Text="Hand Cursor",AutoSize=true,Top=10,Left=120)

let appcursor=new Label(Text="AppStarting Cursor",AutoSize=true,Top=40,Left=120)

let arrwlbl=new Label(Text="Arrow Cursor",AutoSize=true,Top=70,Left=120)

let crsslbl=new Label(Text="Cross Cursor",AutoSize=true,Top=100,Left=120)

let waitlbl=new Label(Text="Wait Cursor",AutoSize=true,Top=130,Left=120)

let helplbl=new Label(Text="Help Cursor",AutoSize=true,Top=160,Left=120)

let nolbl=new Label(Text="No Cursor",AutoSize=true,Top=190,Left=120)

mycursorsform.Controls.Add(handlbl)

mycursorsform.Controls.Add(appcursor)

mycursorsform.Controls.Add(arrwlbl)

mycursorsform.Controls.Add(crsslbl)

mycursorsform.Controls.Add(waitlbl)

mycursorsform.Controls.Add(helplbl)

mycursorsform.Controls.Add(nolbl)

handlbl.MouseHover.Add(fun disphandcursor->

handlbl.ForeColor<-Color.Red

handlbl.Cursor<-Cursors.Hand

let ffont=new System.Drawing.Font("Times New Roman",12.0F)

handlbl.Font<-ffont)

handlbl.MouseLeave.Add(fun changefontsize->

handlbl.ForeColor<-Color.Empty

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

handlbl.Font<-ffont)

appcursor.MouseHover.Add(fun dispappcursor->

appcursor.ForeColor<-Color.Red

appcursor.Cursor<-Cursors.AppStarting

let ffont=new System.Drawing.Font("Times New Roman",12.0F)

appcursor.Font<-ffont)

appcursor.MouseLeave.Add(fun retainsfontsize->

appcursor.ForeColor<-Color.Empty

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

appcursor.Font<-ffont)

arrwlbl.MouseHover.Add(fun disparrowcursor->

arrwlbl.ForeColor<-Color.Red

arrwlbl.Cursor<-Cursors.Arrow

let ffont=new System.Drawing.Font("Times New Roman",12.0F)

arrwlbl.Font<-ffont)

arrwlbl.MouseLeave.Add(fun changefontsize->

arrwlbl.ForeColor<-Color.Empty

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

arrwlbl.Font<-ffont)

crsslbl.MouseHover.Add(fun dispcrosscursor->

crsslbl.ForeColor<-Color.Red

crsslbl.Cursor<-Cursors.Cross

let ffont=new System.Drawing.Font("Times New Roman",12.0F)

crsslbl.Font<-ffont)

crsslbl.MouseLeave.Add(fun changefontsize->

crsslbl.ForeColor<-Color.Empty

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

crsslbl.Font<-ffont)

waitlbl.MouseHover.Add(fun dispwaitcursor->

waitlbl.ForeColor<-Color.Red

waitlbl.Cursor<-Cursors.WaitCursor

let ffont=new System.Drawing.Font("Times New Roman",12.0F)

crsslbl.Font<-ffont)

waitlbl.MouseLeave.Add(fun changefontsize->

waitlbl.ForeColor<-Color.Empty

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

waitlbl.Font<-ffont)

helplbl.MouseHover.Add(fun disphelpcursor->

helplbl.ForeColor<-Color.Red

helplbl.Cursor<-Cursors.Help

let ffont=new System.Drawing.Font("Times New Roman",12.0F)

crsslbl.Font<-ffont)

helplbl.MouseLeave.Add(fun changefontsize->

helplbl.ForeColor<-Color.Empty

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

helplbl.Font<-ffont)

nolbl.MouseHover.Add(fun dispnocursor->

nolbl.ForeColor<-Color.Red

nolbl.Cursor<-Cursors.No

let ffont=new System.Drawing.Font("Times New Roman",12.0F)

crsslbl.Font<-ffont)

nolbl.MouseLeave.Add(fun changefontsize->

nolbl.ForeColor<-Color.Empty

let ffont=new System.Drawing.Font("Times New Roman",9.0F)

nolbl.Font<-ffont)

mycursorsform.Show()

Application.Run(mycursorsform)


Step 5:

Debug the application by pressing F5 to execute the Windows Forms application. After debugging the application you will get a Windows Forms application as in the figure below.

AfterDebug

Step 6:

MouseHover on the HandCursor.

HandCursor

Step 7:

MouseHover on the Appstarting Cursor.

AppstartingCursor

Step 8:

MouseHover on the Arrow Cursror.

ArrowCursor

Step 9:

MouseHover on the Cross Cursor.

CrossCursor

Step 10:

MouseHover on the Wait Cursor.

WaitCursor

Step 11:

MouseHover on the Help Cursor.

HelpCursor

Step 12:

MouseHover on the No Cursor.

NoCursor

Summary

In this article you saw how to create a user cursors in a Windows Forms application and set the properties of the cursors.