gpt4 book ai didi

f# - 你如何在 F# 中表达 (Keys.Control | Keys.M)?

转载 作者:行者123 更新时间:2023-12-01 11:07:52 25 4
gpt4 key购买 nike

在 C# 中,您可以用 Keys.Control | 的形式表达 KeyPress 事件的字符。键.M。在 F# 中,Keys.Control ||| Keys.M 不起作用。什么作用?

编辑:确实很有趣。使用 System.Windows.Forms.Keys.Control ||| System.Windows.Forms.Keys.M 根据下面 Johannes Rössel 在 F# 交互窗口中的建议,其工作方式与他展示的完全一样。将其写入 .fs 文件:

    form.KeyPress.Add (fun e ->
if (e.KeyChar = (System.Windows.Forms.Keys.Control ||| System.Windows.Forms.Keys.M)) then textbox.SelectAll() )

给我错误 The type 'char' does not support any operators named '|||'。所以我可能错误地确定了问题的位置。没有从 Keys 到 char 的类型转换。

最佳答案

只是对 Johaness Rössel 的回答的一点补充,有更好(或“更实用”)的方法来使用响应式(Reactive)编程来做到这一点。

form.KeyDown
|> Event.filter (fun e -> e.KeyData = (Keys.Control + Keys.M))
|> Event.map (fun _ -> textbox.SelectAll())
|> ignore

关于f# - 你如何在 F# 中表达 (Keys.Control | Keys.M)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3485404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com