代码之家  ›  专栏  ›  技术社区  ›  Muhammad Alkarouri

你怎么表达(钥匙。控制|键。M)在F#?

  •  3
  • Muhammad Alkarouri  · 技术社区  · 15 年前

    KeyPress 窗体中的事件 Keys.Control | Keys.M . 在F#, Keys.Control ||| Keys.M

    编辑 :确实有趣。使用 System.Windows.Forms.Keys.Control ||| System.Windows.Forms.Keys.M

        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。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Joey Gumbo    15 年前

    使用 +

    Keys.Control + Keys.M
    

    FWIW公司, ||| 不过,这对我很有用:

    > System.Windows.Forms.Keys.Control ||| System.Windows.Forms.Keys.M;;
    val it : System.Windows.Forms.Keys = M, Control
    
        2
  •  4
  •   Martin JonáÅ¡    15 年前

    除了johanesrssel的答案之外,还有一种更好的方法(或者“更实用的”)使用反应式编程来实现这一点。

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