【问题标题】:create a winform dll in C# and use it F#在 C# 中创建一个 winform dll 并使用它 F#
【发布时间】:2014-01-28 05:03:45
【问题描述】:

我在 C# 中创建了一个 winform1 dll 并尝试在 F# 中使用它,因为可视化 F# 没有可视化设计器。我想做的是这样的

//F# pesudo code
let obj1 = new winform1()
obj1.show()// 
let mutable i = 1
while true do
    thread.sleep 1000
    i<i+1
    obj1.shownumber i

换句话说,我正在模拟随着时间的推移以某种形式显示某些东西。你能提示我一些事情吗?提前谢谢!

【问题讨论】:

  • 那到底是什么不起作用? - 乍一看,该代码看起来不错。
  • @JohnPalmer 它没有设置正确的消息循环,因此它无法处理任何事件
  • @JaredPar - 我有点猜到了 - 我只是想让 OP 真正解释他的问题,所以有一个实际问题。
  • john 和 jaredPar,感谢您的回复。问题是,如果我使用 obj.showdialog(),这是某种“模态形式”,程序将在那里停止并且不会继续。如果我使用 obj.show(),它是“模态形式”或“非模态形式”,它的形式只会闪烁并立即消失。 \

标签: c# forms dll f#


【解决方案1】:

要实际运行 WinForms 应用程序的初始表单,您需要设置一个适当的消息循环。最好的方法是使用Application.Run 方法。

open System.Windows.Forms

let obj1 = new winform1()
Application.Run(obj1)

请注意,标准 C# WinForms 应用程序添加了 2 个其他语句。虽然我不知道他们的确切目的,但我也会包括他们

Application.EnableVisualStyles()
Application.SetCompatibleTextRenderingDefault(false)
Application.Run(obj1)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多