0

简单的问题:

在 F# Interactive 中,这不起作用(它不显示对话框):

open System.Windows.Forms
let dlg = new OpenFileDialog()
let res = dlg.ShowDialog()

在我第一次做一个简单的 MessageBox 之后,这段代码确实有效:

open System.Windows.Forms
MessageBox.Show("Now it works!")
let dlg = new OpenFileDialog()
let res = dlg.ShowDialog()

在首次显示表单后,此代码也可以工作:

open System.Windows.Forms
let frm = new Form()
frm.Show()
let dlg = new OpenFileDialog()
let res = dlg.ShowDialog()

然而,这段代码没有显示任何形式,甚至没有消息框:

open System.Windows.Forms
let dlg = new OpenFileDialog()
let res = dlg.ShowDialog()
MessageBox.Show("Now it does not work...")

似乎 OpenFileDIalog 阻塞了某些东西,如果它没有其他形式的温暖/首先加载某些东西,不知道是什么。

有什么想法可以让 OpenFileDialog 立即工作吗?

使用 Microsoft (R) F# 2.0 Interactive build 4.0.40219.1

谢谢,GJ

4

1 回答 1

2

窗口就在那里,它们只是出现在 Visual Studio UI 的后面,所以很容易不注意到它们。我不确定为什么它们没有出现在前台。

从命令行(即不是托管的 VS 之一)对 FSI 进行的快速测试表明,在这种情况下,窗口会出现在前台。

于 2013-09-16T20:48:27.653 回答