我有這個非常簡單的程序,可以從網站獲取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(有趣的參數 - > ...)'然後再次運行代碼。總是有可能在編譯器中存在一個錯誤,所以當你應該時你沒有得到解析器或輸入錯誤。 –