mono - winforms与f#

时间:2015-10-15 10:41:07

标签: winforms f# mono monodevelop

我已成功使用F#绑定安装MonoDevelop(在Linux Arch下)。

如果我使用winforms尝试一个简单的HelloWorld,我会遇到这种奇怪的行为:程序编译并构建成功,但是在加载窗口后的一瞬间它只是自行关闭并且程序返回时没有错误消息。

我检查了日志,似乎没有抛出任何错误(除了这里讨论的错误:GLib-CRITICAL **: Source ID XXX was not found when attempting to remove it,无论如何似乎无关)。

该计划的代码:

open System.Drawing
open System.Windows.Forms

[<EntryPoint>]
let main argv = 
    let form = new Form(TopMost = true, Text = "Hello World")
    form.Show()
    0 // return an integer exit code

如果我尝试通过交互式控制台运行它,窗口就会被冻结:我可以移动它,但我无法关闭它(必须关闭monodevelop才能这样做)。

我还试图通过终端编译它,使用:

fsharpc Program.fs -pkg:dotnet.dll
mono Program.exe

但它的行为与我在MonoDevelop中运行的方式相同(窗口打开然后关闭)。 除了F#似乎工作正常,我可以毫无问题地运行控制台程序。

我还尝试在MonoDevelop中使用C#运行一个简单的HelloWorld程序,它运行正常。

任何提示?

1 个答案:

答案 0 :(得分:2)

您需要使用

之类的东西启动表单事件循环
Application.Run(new Form())