相关疑难解决方法(0)

将String转换为相应的Forms.Keys值?

我正在寻找一种方法将a的值转换string为等效System.Windows.Forms.Keys项.然后,此值将用于PressKey模拟相应的Key.我试过用KeyConverter这样的:

    [DllImport("user32.dll", SetLastError = true)]
    static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);

    public static void PressKey(System.Windows.Forms.Keys key, bool up)
        {
            const int KEYEVENTF_EXTENDEDKEY = 0x1;
            const int KEYEVENTF_KEYUP = 0x2;
            if (up)
            {
                keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
            }
            else
            {
                keybd_event((byte)key, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
            }
        }

    KeyConverter kc = new KeyConverter();
    PressKey((System.Windows.Forms.Keys)kc.ConvertFromString(string), false);
Run Code Online (Sandbox Code Playgroud)

我需要的是string喜欢"Enter"被转换为System.Windows.Forms.Keys.Enter.但是KeyConverter没有返回任何东西.有什么想法吗?

.net c# string winforms

5
推荐指数
2
解决办法
5340
查看次数

标签 统计

.net ×1

c# ×1

string ×1

winforms ×1