我最近开始学习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#。谢谢你的帮助。
编辑:我还想指出,我知道在这段代码中有很多难看的语法,但整个过程只是我一直在使用的测试形式。
答案 0 :(得分:3)
我认为你只需要
let ddi = file.DropDownItems.Add("TestItem") //Code of importance
问题是您忽略了Add()调用的结果,该调用返回添加的项目。
另请注意,说
更为惯用yadda |> ignore
而不是
ignore(yadda)