Pictureboxobjname.DataBindings.Add(new Binding(pictureboxproperty,datasource,fieldname))For instance:
appico.DataBindings.Add(new Binding("Image",bindingsource,"oleapplogo",true))The last boolean parameter enables the control formatting. We also use the Image property instead of the usual Text for the fact that it is the property used to display an image on your form.
Before proceding to the steps below, I want you to make an Ms-Access 2003 or 2007 database file named “dbApplication”. Create a table inside it and name it “tblApplication”. Use the following specifications:
Chrappname | Text | Handles the application name | |
Oleapplogo | OLE Object | Handles the application ico |
After creating your table, you can add appropriate values to it for instance:
chrappname | oleapplogo | |
PHP | Bitmap Image | |
Apache | Bitmap Image |
Bitmap Image refers the the Bitmap Object that you have inserted using the Paste From Ms-Paint command.
After creating the table and adding appropriate values to it.We are now ready for our sample application. Just follow these steps:
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 and System.Data from the .Net tab.
4. Enter the following code after the line “// Learn more about F# at http://fsharp.net “:
// Learn more about F# at http://fsharp.net //specifies the memory location of the class files //that will be needed in our application open System open System.Windows.Forms open System.Data open System.Drawing //creates a font let ffont=new Font("Verdana", 9.75F,FontStyle.Regular, GraphicsUnit.Point) //creates a connection object let oleconn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\station 2\My Documents\dbApplication.mdb") //creates an OleDbDataAdapter let dataadpter = new System.Data.OleDb.OleDbDataAdapter("Select * from tblApplication", oleconn) //generates a dataset let dataset11 = new DataSet() //fills the dataset with recod values dataadpter.Fill(dataset11,"tblApplication")|>ignore //creates a form let dataform = new Form(Text="Manipulate Image Data",AutoScaleDimensions=new System.Drawing.SizeF(60.0F, 13.0F),ClientSize=new System.Drawing.Size(300, 200),StartPosition=FormStartPosition.CenterScreen) //creates our controls let label1=new Label(Text="App. name:",Location=new System.Drawing.Point(0, 10),AutoSize=true) let label2=new Label(Text="Icon:",Location=new System.Drawing.Point(0, 50),AutoSize=true) let appnamelabel=new Label(Location=new System.Drawing.Point(140,10),BorderStyle=BorderStyle.FixedSingle) let appico=new PictureBox(SizeMode=PictureBoxSizeMode.StretchImage,Location=new System.Drawing.Point(140,50)) let bindingsource=new BindingSource() //creates a binding navigator //this will allow us to add navigational buttons to our data grid let bindingnav=new BindingNavigator(Dock=DockStyle.None,Location=new System.Drawing.Point(100, 170)) //creates a toolstrip buttons for our binding navigator let movefirst=new ToolStripButton(Text="Top") let moveprev=new ToolStripButton(Text="Prev") let movenext=new ToolStripButton(Text="Next") let movelast=new ToolStripButton(Text="Bottom") let exitbutton=new ToolStripButton(Text="Exit") //adds the toolstripbuttons to our binding navigator bindingnav.Items.Add(movefirst)|>ignore bindingnav.Items.Add(moveprev)|>ignore bindingnav.Items.Add(movenext)|>ignore bindingnav.Items.Add(movelast)|>ignore bindingnav.Items.Add(exitbutton)|>ignore //adds a function to each buttons bindingnav.MoveFirstItem<-movefirst bindingnav.MoveNextItem<-movenext bindingnav.MovePreviousItem<-moveprev bindingnav.MoveLastItem<-movelast exitbutton.Click.Add(fun exit-> //close the form and dataconnection dataform.Close() oleconn.Close()) //assigns the dataset name as a bindingsource datasource bindingsource.DataSource<-dataset11 //assigns our table as a binding source datamember bindingsource.DataMember<-"tblApplication" //assigns the bindingsource name as a binding navigators //bindingsource value bindingnav.BindingSource<-bindingsource //opens the connection oleconn.Open() //assings the font to our form dataform.Font<-ffont //adds the controls to our form dataform.Controls.Add(label1) dataform.Controls.Add(label2) dataform.Controls.Add(appnamelabel) dataform.Controls.Add(appico) dataform.Controls.Add(bindingnav) //binds the fieldnames to our label appnamelabel.DataBindings.Add(new Binding("Text",bindingsource,"chrappname")) appico.DataBindings.Add(new Binding("Image",bindingsource,"oleapplogo",true)) //executes our application dataform.Show() Application.Run(dataform)5. Click the run icon to execute your application. You should now see an output similar to the following screen shot: 6. Here’s another version of the code above without BindingSource and BindingNavigator.
// Learn more about F# at http://fsharp.net //specifies the memory location of the class files //that will be needed in our application open System open System.Windows.Forms open System.Data open System.Drawing //creates a font let ffont=new Font("Verdana", 9.75F,FontStyle.Regular, GraphicsUnit.Point) //creates a connection object let oleconn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Documents and Settings\station 2\My Documents\dbApplication.mdb") //creates an OleDbDataAdapter let dataadpter = new System.Data.OleDb.OleDbDataAdapter("Select * from tblApplication", oleconn) //generates a dataset let dataset11 = new DataSet() //fills the dataset with recod values dataadpter.Fill(dataset11,"tblApplication")|>ignore //creates a form let dataform = new Form(Text="Manipulate Image Data",AutoScaleDimensions=new System.Drawing.SizeF(60.0F, 13.0F),ClientSize=new System.Drawing.Size(300, 200),StartPosition=FormStartPosition.CenterScreen) //creates our controls let label1=new Label(Text="App. name:",Location=new System.Drawing.Point(0, 10),AutoSize=true) let label2=new Label(Text="Icon:",Location=new System.Drawing.Point(0, 50),AutoSize=true) let appnamelabel=new Label(Location=new System.Drawing.Point(140,10),BorderStyle=BorderStyle.FixedSingle) let appico=new PictureBox(SizeMode=PictureBoxSizeMode.StretchImage,Location=new System.Drawing.Point(140,50)) //opens the connection oleconn.Open() //assings the font to our form dataform.Font<-ffont //adds the controls to our form dataform.Controls.Add(label1) dataform.Controls.Add(label2) dataform.Controls.Add(appnamelabel) dataform.Controls.Add(appico) //binds the fieldnames to our label appnamelabel.DataBindings.Add(new Binding("Text",dataset11,"tblApplication.chrappname")) appico.DataBindings.Add(new Binding("Image",dataset11,"tblApplication.oleapplogo",true)) //executes our application dataform.Show() Application.Run(dataform)For more sketchy tutorials on Visual F# visit Microsoft F# Developer Center.