【问题标题】:How do I assign a string value to System.Windows.Forms.Keys?如何将字符串值分配给 System.Windows.Forms.Keys?
【发布时间】:2012-09-07 05:10:53
【问题描述】:

我需要将 System.Windows.Forms.Keys 设置为我已分配的字符串。

我正在使用第 3 方 .Net 控件,它允许我将 HotKey 分配给控件,它使用 System.Windows.Forms.Keys 来设置 HotKey。例如:

this.systemHotKey1.SetHotKey(System.Windows.Forms.Keys.S); //Assign S as the HotKey

但是,System.Windows.Forms.Keys 不允许我为其分配字符串,我需要为其分配一个实际值。例如,这很好用:

System.Windows.Forms.Keys.S (for the hotkey S on the keyboard).



但我想做这样的事情:

{
string tmpString = "S";
this.systemHotKey1.SetHotKey(System.Windows.Forms.Keys.tmpString);  //This does not work
}



有人可以告诉我一种可以将字符串分配给 System.Windows.Forms.Keys 的方法吗?

【问题讨论】:

    标签: c# winforms string


    【解决方案1】:

    我认为你在命名空间 System.Windows.Input 中的 KeyConverter 之后

    KeyConverter k = new KeyConverter(); 
    Keys mykey = (Keys)k.ConvertFromString("Enter"); 
    if (mykey == Keys.Enter) 
    { 
        Text = "Enter Key Found"; 
    } 
    

    由于 Keys 是一个枚举,因此您也可以像任何枚举一样解析它。

    string str = /* name of the key */; 
    Keys key; 
    if(Enum.TryParse(str, true, out key)) 
    { 
        // use key 
    } 
    else 
    { 
        // str is not a valid key 
    } 
    

    【讨论】:

    • 键键;对我不起作用。是否需要导入命名空间才能使用“Key”?
    • 已更新,应该是 Keys。我很抱歉。
    【解决方案2】:

    您可以使用 KeysConverter 来做到这一点

    string tmpString = "S";
    KeysConverter kc = new KeysConverter();
    this.systemHotKey1.SetHotKey(kc.ConvertFromString(tmpstring));
    

    【讨论】:

    • 执行此操作时出现错误:参数类型“对象”不可分配给读取“kc.ConvertFromString(tmpstring) 的代码行的参数类型“System.Windows.Forms.Keys” )"
    • 您是否尝试将其转换为 Keys 类型?this.systemHotKey1.SetHotKey((System.Windows.Forms.Keys)kc.ConvertFromString(tmpstring));
    【解决方案3】:

    希望,这会成功:

    KeysConverter kc = new KeysConverter();
    
    string tmpString = "S";
    Keys key = (Keys)kc.ConvertFromString(tmpString);
    this.systemHotKey1.SetHotKey(key);
    

    【讨论】:

    • 无法将“字符串”类型的表达式转换为“字节”类型
    猜你喜欢
    • 2022-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多