【问题标题】:F# and winform Controls QuestionF# 和 winform 控件问题
【发布时间】:2009-04-14 10:56:17
【问题描述】:

我是 F# 的新手,我想我会开发一个简单的 winform 计算器来加强我使用 F# 和 .NET 的技能。我遇到了两个问题,可能有非常简单的答案,但是,我无法从我的资源中找到任何帮助。

首先,我希望能够将我的文本框类型更改为整数,这样当我按下“添加”按钮时,事件将添加整数而不是连接它们。例如:

btnPlus.Click.Add(fun _ -> tb1.Text

如何为文本框指定整数类型或为输入到文本框中的值指定整数类型?

我的下一个问题与语法有关。我只是想知道如何向事件添加多个命令。也就是说,在上面的例子中,假设我想添加两个整数,然后打开另一个表单,然后在单击按钮后运行一个消息框。我是否只是在每个命令之间添加逗号,例如:btnPlus.Click.Add(fun _ -> add integers, open form, messagebox) 还是涉及其他内容?

对于大二的问题,我深表歉意。 F# 和 winforms 上没有足够的资源,就像 F# 和输出(即打印、cmd 等)上一样。

谢谢,

DFM

【问题讨论】:

    标签: winforms f# textbox


    【解决方案1】:

    我认为文本框文本始终是一个字符串,但你可以这样做,例如

    (2 + 2).ToString()
    

    (不太清楚你在追求什么)。

    对于 lambda 体内的多个语句,F# 是基于表达式的,但使用 ';'或用于排序的换行符,例如

    (fun _ -> doFoo(); doBar())
    

    (fun _ ->
        doFoo()
        doBar()
    )
    

    【讨论】:

    • 感谢您的反馈。您的回复将使我朝着正确的方向前进。我想验证语法如何在单击事件后查找加法、减法、乘法等...整数。最终,我将用文本框输入替换数字(2),类似于计算器。谢谢 -
    【解决方案2】:

    您只需将文本框内容解析为整数。您可以通过 Convert.ToInt32 执行此操作。

    open System
    let string1 = "254"
    let string2 = "4525"
    let myNum = Convert.ToInt32(string1) + Convert.ToInt32(string2)
    

    编辑:您也可以使用 Int32.TryParse(string, int32) 来做到这一点。

    编辑:在 F# 中,您可以只使用“int”,例如(int string1)。

    【讨论】:

    • 感谢您的第二次跟进。你的回答很完美!我能够使用 int 方法成功添加两个文本框输入。再次感谢 DFM
    猜你喜欢
    • 2014-01-22
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2014-02-16
    • 2011-01-21
    • 1970-01-01
    相关资源
    最近更新 更多