我有这个非常简单的程序,可以从网站获取RSS提要,并用项目填充列表框。每当用户选择一个项目并按下回车键,它就会进入一个网页。这是KeyUp事件处理程序!F#事件正在多次触发。 。 。?
rssList.KeyUp
|> Event.filter (fun e -> rssList.SelectedItems.Count > 0)
|> Event.filter (fun (args:Input.KeyEventArgs) -> args.Key = Key.Enter)
|> Event.add -> let feed = unbox<RSSFeed> rssList.SelectItem)
Process.Start(feed.Link) |> ignore)
什么我得到如下:
- 第一次事件触发,它工作正常,在浏览器中打开和页面加载
- 它会触发两次,第二次次,所以现在我得到两个浏览器窗口打开和页面加载在他们两个。
- 我第三次得到三个浏览器。 。 。你明白了!
任何人都知道为什么会发生这种情况?我的目标是(你猜对了)只是打开1个浏览器窗口和1页PER触发器
看起来像Event.add缺少一些代码(有趣的参数 - >)。你能解决它吗? –
上面的代码运行完全正常,我没有得到关于任何'缺少'代码的错误。它和预期的一样。但在这里有多个执行,我不知道为什么会发生这种情况 –
@ZaidAjaj为了诊断起见,请尝试一下Eugene建议 - 将Event.add - > ...改为Event.add(有趣的参数 - > ...)'然后再次运行代码。总是有可能在编译器中存在一个错误,所以当你应该时你没有得到解析器或输入错误。 –