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)Here is our sample code again and this time comments omitted.
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: