2015-10-15 46 views
0

我已經成功地安裝了MonoDevelop與F#綁定(Linux Arch下)。單聲道winforms無法正常工作與f#

如果我用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程序,它只是正常工作。

任何提示?

回答

2

您需要啓動形式事件循環的東西,如

Application.Run(new Form()) 
+0

試過剛纔,它的工作就好了:)謝謝!我認爲不建議使用Application.Run()來支持form.Show(),但是這似乎不是這種情況。好吧。 – mp85

相關問題