How to display an FSharp.Charting graph in an existing form?
f#, f#-charting, fsharpchart, winforms
Solution
In order to achieve this you should wrap your chart into `FSharp.Charting.ChartTypes.ChartControl` and take care of correct docking. Also you should not mix `Chart` from FSharp.Charting with `Chart` from `System.Windows.Forms.DataVisualization.Charting`.
A good staring point may be the following fully functional sample that works with the current FSharp.Charting v0.90.5; also references are required to `System.Drawing` and `System.Windows.Forms`:
open System
open FSharp.Charting
open FSharp.Charting.ChartTypes
open System.Drawing
open System.Windows.Forms
[<STAThread; EntryPoint>]
let main args =
let myChart = [for x in 0.0 .. 0.1 .. 6.0 -> sin x + cos (2.0 * x)]
|> Chart.Line |> Chart.WithYAxis(Title="Test")
let myChartControl = new ChartControl(myChart, Dock=DockStyle.Fill)
let lbl = new Label(Text="my label")
let form = new Form(Visible = true, TopMost = true, Width = 700, Height = 500)
form.Controls.Add lbl
form.Controls.Add(myChartControl)
do Application.Run(form) |> ignore
0
Problem
I don't understand how to create a chart control and place the chart in an existing form. All the examples I found on the web show the chart in a new form but I would like to add the chart to one of my existing forms. I'm thinking of something like this: ``` let form = new Form(Text="My form") let lbl = new Label(Text="my label") let chart = Chart.Area ["a", 10; "b", 20] form.Controls.Add lbl form.Controls.Add chart // ---> The type 'ChartTypes.GenericChart' is not compatible with the type 'Control' Application.Run(form) ``` Thanks!