winforms - 显示后关闭 Visual F# Windows 窗体

标签 winforms f#

美好的一天,

我刚刚开始学习可视化 F#,看起来非常有趣。对于我的第一个项目,我立即制作了一个 Windows 窗体以从页面下载信息并将其显示在窗体上的 RichTextBox 中。问题是,一旦表格显示并下载了信息,它就会立即关闭。如何让我的杰作保持开放状态以供查看?有什么建议吗?

我目前有 2 个文件:

  • 程序文件
  • 脚本1.fs

Program.fs 应该“创建”表单,其中 Script1.fs 只是应用程序的入口点。

Program.fs

namespace Program1
    open System.Windows.Forms

    module public HelloWorld =
        let form = new Form(Visible = true, TopMost = true, Text = "Welcome to F#")

        let textB = new RichTextBox(Dock = DockStyle.Fill, Text = "Initial Text")
        form.Controls.Add textB

        open System.IO
        open System.Net

        /// Get the contents of the URL via a web request
        let http (url: string) =
         let req = System.Net.WebRequest.Create(url)
         let resp = req.GetResponse()
         let stream = resp.GetResponseStream()
         let reader = new StreamReader(stream)
         let html = reader.ReadToEnd()
         resp.Close()
         html
        textB.Text <- http "http://www.google.com"

脚本1.fs

open Program1

    [<EntryPoint>]
    let main argv= 
        printfn "Running F# App"
        HelloWorld.form.Show();
        0

我需要重申一下,我是从 F# 开始的。这是我编写的第一个应用程序。如何使表单保持打开状态?

最佳答案

您需要调用 Application.Run 并将表单对象传递给它。 http://msdn.microsoft.com/en-us/library/system.windows.forms.application.run(v=vs.110).aspx

这将创建一个消息循环,并使您的应用程序保持事件状态,直到表单关闭。

open Program1

[<EntryPoint>]
let main argv= 
    printfn "Running F# App"
    System.Windows.Forms.Application.Run(HelloWorld.form)
    0

关于winforms - 显示后关闭 Visual F# Windows 窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25326671/

相关文章:

c# - 设置 TabControl 对齐属性。 C# 窗体

c# - 如何在运行时克隆 Control 事件处理程序?

.net - 如何知道 .fsx 脚本是由 .NETCore/.NET5 还是由遗留框架运行的?

f# - 在 F# 中生成包含月份的数组

list - F#中的列表操作

c# - 按比例调整 pictureBox 的大小以调整 Form 的大小

c# - 以编程方式添加 DataGridView 列

asynchronous - 异步 block 中的 Xamarin Android F# 更新 UI

ado.net - 如何调试本地存储的问题? HandleBatchResponse 中的 "An error occurred while processing this request"出现问题

c# - 数据连接中的数据源中缺少Mysql数据源