F#winforms MenuStrip问题:不确定如何获取DropDownItems的句柄

时间:2008-12-06 22:45:48

标签: .net winforms f# menustrip

我最近开始学习F#,这是我第一次使用WinForms。这是我的代码。

#light
open System
open System.Windows.Forms
let form =
    let temp = new Form()
    let ms = new MenuStrip()
    let file = new ToolStripDropDownButton("File")
    ignore(ms.Items.Add(file))
    ignore(file.DropDownItems.Add("TestItem")) \\Code of importance
    let things _ _ = ignore(MessageBox.Show("Hai"))
    let handle = new EventHandler(things)
    ignore(file.Click.AddHandler(handle))
    let stuff _ _ = ignore(MessageBox.Show("Hai thar."))
    let handler = new EventHandler(stuff)
    let myButton = new Button(Text = "My button :>", Left = 8, Top = 100, Width = 80)
    myButton.Click.AddHandler(handler)
    let dc c = (c :> Control)
    temp.Controls.AddRange([| dc myButton; dc ms |]);
    temp
do Application.Run(form)

问题是什么,我似乎无法弄清楚如何处理DropDownItems项目以便我可以使用它。我确信它很简单,但我没有长时间使用F#。谢谢你的帮助。

编辑:我还想指出,我知道在这段代码中有很多难看的语法,但整个过程只是我一直在使用的测试形式。

1 个答案:

答案 0 :(得分:3)

我认为你只需要

let ddi = file.DropDownItems.Add("TestItem") //Code of importance

问题是您忽略了Add()调用的结果,该调用返回添加的项目。

另请注意,说

更为惯用
yadda |> ignore

而不是

ignore(yadda)