1. Click Start>All Programs>Microsoft Visual Studio 2008>Microsoft Visual Studio 2008.
2. Click File>New>Project>Select Visual F# in the project types>Select F# application in the Visual Studio installed templates category.
3. Click the Project menu>Add reference>Click the .Net tab>Locate then double-click System.Windows.Forms.
Do step 3 again and this time, select System.Drawing from the .Net tab.
4. Enter the following code after the line “// Learn more about F# at http://fsharp.net “:
- //use the F# standard library
- open System
- //use the drawing class
- open System.Drawing
- //Specifies the memory location of the form class
- open System.Windows.Forms
- //create a font object
- let ffont=new Font("Arial",12.0f,FontStyle.Bold, GraphicsUnit.Point)
- //creates a form named “firstform”
- let firstform=new Form(Text="Display First Form",StartPosition=FormStartPosition.CenterScreen,AutoScaleMode=AutoScaleMode.Font,ClientSize=new System.Drawing.Size(200,200),FormBorderStyle=FormBorderStyle.FixedSingle)
- //creates a label,sets its caption to “This is the first form”
- let fformlabel=new Label(Text="This is the first form",AutoSize=true)
- //make a button,sets its caption to Second Form
- let nxtbutton=new Button(Text="Second Form", Location=new System.Drawing.Point(100, 200),AutoSize=true)
- //creates another button, set its text to exit
- let fexitbutton=new Button(Text="Exit", Location=new System.Drawing.Point(200, 200),AutoSize=true)
- //adds the controls we made to the first form
- firstform.Controls.Add(fformlabel)
- //applies font format to our label
- fformlabel.Font<-ffont
- firstform.Controls.Add(nxtbutton)
- firstform.Controls.Add(fexitbutton)
- //when the “Second Form” button of the first form is clicked
- nxtbutton.Click.Add(fun nxtform->
- //hides the first form
- firstform.Hide()
- //create a new form named secondform
- let secondform=new Form(Text="Second Form", StartPosition=FormStartPosition.CenterScreen,AutoScaleMode=AutoScaleMode.Font,ClientSize=new System.Drawing.Size(200,200),FormBorderStyle=FormBorderStyle.FixedSingle)
- //create a label and sets its caption to “This is the second form”
- let sformlabel=new Label(Text="This is the second form",AutoSize=true)
- //creates a button and sets its text to “First Form”
- let prevbutton=new Button(Text="First Form", Location=new System.Drawing.Point(100, 200))
- //adds a button, set its text to “Exit”
- let sexitbutton=new Button(Text="Exit", Location=new System.Drawing.Point(200, 200))
- //show the second form
- secondform.Show()
- //add the controls we made on the second form
- secondform.Controls.Add(sformlabel)
- //applies font format to our label
- sformlabel.Font<-ffont
- secondform.Controls.Add(prevbutton)
- secondform.Controls.Add(sexitbutton)
- //when the “First Form” button of the second form is clicked
- prevbutton.Click.Add(fun prevform->
- //show the first form
- firstform.Show()
- //hide the second form
- secondform.Hide())
- //when the exit button of the second form is clicked
- sexitbutton.Click.Add(fun quit->
- //close the first form
- firstform.Close()
- //close the second form
- secondform.Close()))
- //when the exit button of the first form is clicked
- //close the first form
- fexitbutton.Click.Add(fun quit->firstform.Close())
- firstform.Show()
- //executes our application
- Application.Run(firstform)
- open System
- open System.Drawing
- open System.Windows.Forms
- let ffont=new Font("Arial",12.0f,FontStyle.Bold, , GraphicsUnit.Point)
- let firstform=new Form(Text="First Form", StartPosition=FormStartPosition.CenterScreen,AutoScaleMode=AutoScaleMode.Font,ClientSize=new System.Drawing.Size(200,200),FormBorderStyle=FormBorderStyle.FixedSingle)
- let fformlabel=new Label(Text="This is the first form",AutoSize=true)
- let nxtbutton=new Button(Text="Second Form", Location=new System.Drawing.Point(100, 200),AutoSize=true)
- let fexitbutton=new Button(Text="Exit", Location=new System.Drawing.Point(200, 200),AutoSize=true)
- firstform.Controls.Add(fformlabel)
- fformlabel.Font<-ffont
- firstform.Controls.Add(nxtbutton)
- firstform.Controls.Add(fexitbutton)
- nxtbutton.Click.Add(fun nxtform->
- firstform.Hide()
- let secondform=new Form(Text="Second Form", StartPosition=FormStartPosition.CenterScreen,AutoScaleMode=AutoScaleMode.Font,ClientSize=new System.Drawing.Size(200,200),FormBorderStyle=FormBorderStyle.FixedSingle)
- let sformlabel=new Label(Text="This is the second form",AutoSize=true)
- let prevbutton=new Button(Text="First Form", Location=new System.Drawing.Point(100, 200))
- let sexitbutton=new Button(Text="Exit", Location=new System.Drawing.Point(200, 200))
- secondform.Show()
- secondform.Controls.Add(sformlabel)
- sformlabel.Font<-ffont
- secondform.Controls.Add(prevbutton)
- secondform.Controls.Add(sexitbutton)
- prevbutton.Click.Add(fun prevform->
- firstform.Show()
- secondform.Hide())
- sexitbutton.Click.Add(fun quit->
- firstform.Close()
- secondform.Close()))
- fexitbutton.Click.Add(fun quit->firstform.Close())
- firstform.Show()
- Application.Run(firstform)
5. Click the run icon to execute your application. You should now see an output similar to the following screen shot: