从F#交互控制台数据可视化窗口的形式,我可以做到以下几点:F#:在编译的程序
open System.Windows.Forms
let testgrid (x) =
let form = new Form(Visible = true)
let data = new DataGridView(Dock = DockStyle.Fill)
form.Controls.Add(data)
data.DataSource <- x
testgrid [|(1,1);(2,2)|]
但是,如果把上面的已编译的F#程序,并在程序中调用testgrid [|(1,1);(2,2)|]
,我只有没有数据的冻结窗口。需要做些什么才能使这个testgrid
适用于编译的F#程序? 编辑:与ildjarn的答案和一些搜索,是下面的代码好吗?任何陷阱?
let testgrid x =
let makeForm() =
use form = new Form()
new DataGridView(Dock = DockStyle.Fill, DataSource = x) |> form.Controls.Add
Application.Run form
let thread = new System.Threading.Thread(makeForm)
thread.SetApartmentState(Threading.ApartmentState.STA)
thread.Start()
@matlabdbuser - 你可能会感兴趣的项目,我的工作on,FsEye(http://code.google.com/p/fseye/),一个基于WinForms的可视对象树检查器,用于FSI。 – 2011-06-07 20:34:02
@Stephen,THanks为您的链接。这个项目是一个伟大的工具。 – matlabdbuser 2011-06-07 20:39:33
@Stephen:真棒,值得更多曝光。 – ildjarn 2011-06-07 23:31:29