应该在继承窗口后点击事件添加的位置?

时间:2012-03-06 08:07:20

标签: inheritance f#

以下测试代码,当打开窗口时,它也会弹出hello messagebox。听起来它在打开窗口时在fun _ ->之后运行代码。 当我调试看没有test001时,似乎没有逐个运行,比如在fun _ ->之后没有运行代码:

let test001 = MessageBox.Show("hello")
type Server() as this =
    inherit windows
       do connectionButton.Click.Add (fun _ -> test001
                                            tc.Connect("localhost", 2626) )

2 个答案:

答案 0 :(得分:2)

由于test001是一个值,因此只评估一次。你需要的是一个函数,每次调用它时都会弹出一个MessageBox:

let test001() = MessageBox.Show("hello") // test001 is now a function
type Server() as this =
    inherit windows
       do connectionButton.Click.Add (fun _ -> test001() |> ignore
                                               tc.Connect("localhost", 2626))

答案 1 :(得分:0)

您需要像这样创建Server的实例

假设Server继承自System.Windows.Form

System.Windows.Forms.Application.Run(new Server())