Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在文本框中模拟键盘快捷键\u要处理的按键事件?_C# - Fatal编程技术网

C# 在文本框中模拟键盘快捷键\u要处理的按键事件?

C# 在文本框中模拟键盘快捷键\u要处理的按键事件?,c#,C#,我试图使用文本框中的keydown事件将键盘快捷键(如Ctrl+A、Ctrl+Shift+X)模拟到文本框中,但我有点进退两难。我使用一个列表框来记录当它模拟键盘快捷键但运行该事件两次时引发的事件。我问,如果它只有一个修改键(ctrl、alt、shift、winkey)+一个字母数字键(a-z 0-9),我将如何使它只登录到列表框的快捷方式 如果只按修改键+a-z键或0-9键,最有效的方法是什么 private void txtShortcut_KeyDown(对象发送方,KeyEventArg

我试图使用文本框中的keydown事件将键盘快捷键(如Ctrl+A、Ctrl+Shift+X)模拟到文本框中,但我有点进退两难。我使用一个列表框来记录当它模拟键盘快捷键但运行该事件两次时引发的事件。我问,如果它只有一个修改键(ctrl、alt、shift、winkey)+一个字母数字键(a-z 0-9),我将如何使它只登录到列表框的快捷方式

如果只按修改键+a-z键或0-9键,最有效的方法是什么

private void txtShortcut_KeyDown(对象发送方,KeyEventArgs e)
private void txtShortcut_KeyDown(object sender, KeyEventArgs e)
    {
                // Example key press: Ctrl + A
        if ((e.Shift || e.Control || e.Alt) && 
            (((e.KeyCode >= Keys.a) && (e.KeyCode <= Keys.z)) ||
            ((e.KeyCode >= Keys.A) && (e.KeyCode <= Keys.Z)) ||
            ((e.KeyCode >= Keys.NumPad0) && (e.KeyCode <= Keys.NumPad9)) ||
            ((e.KeyCode >= Keys.D0) && (e.KeyCode <= Keys.D9))))
        {
            string s = (e.Shift ? Keys.ShiftKey.ToString() + " + " : "") + // Shift
                                (e.Control ? Keys.ControlKey.ToString() + " + " : "") +  // Control
                                        (e.Alt ? Keys.Menu.ToString() + " + " : "") +  // Alt (menu)
                                                e.KeyCode; // Key.

            lbLogger.Items.Add(s);
                        // Logger Results:
                        // 1) ControlKey + ControlKey
                        // 2) ControlKey + A
            // * I'm trying to get it to only post the second line and only log the line
            // when a modifier key + a-z 0-9 key is pressed with it.
        }
    }
{ //示例按键:Ctrl+A 如果((e.Shift | | e.Control | | e.Alt)和
(((e.KeyCode>=Keys.a)和&(e.KeyCode=Keys.a)和&(e.KeyCode=Keys.NumPad0)和&(e.KeyCode=Keys.D0)和(e.KeyCode)你根本不应该模拟键盘,这不是一个好的做法。你为什么要这样做?我正在尝试创建一个例程,允许用户将自定义键盘快捷键设置为菜单和程序按钮等其他方法。顺便说一句,你的代码看起来几乎和Mike Power的代码一样。是同一个人在背后吗?哇,我没有哦,我说这很有创意。很多道具。
private void txtShortcut_KeyDown(object sender, KeyEventArgs e)
    {
                // Example key press: Ctrl + A
        if ((e.Shift || e.Control || e.Alt) && 
            (((e.KeyCode >= Keys.a) && (e.KeyCode <= Keys.z)) ||
            ((e.KeyCode >= Keys.A) && (e.KeyCode <= Keys.Z)) ||
            ((e.KeyCode >= Keys.NumPad0) && (e.KeyCode <= Keys.NumPad9)) ||
            ((e.KeyCode >= Keys.D0) && (e.KeyCode <= Keys.D9))))
        {
            string s = (e.Shift ? Keys.ShiftKey.ToString() + " + " : "") + // Shift
                                (e.Control ? Keys.ControlKey.ToString() + " + " : "") +  // Control
                                        (e.Alt ? Keys.Menu.ToString() + " + " : "") +  // Alt (menu)
                                                e.KeyCode; // Key.

            lbLogger.Items.Add(s);
                        // Logger Results:
                        // 1) ControlKey + ControlKey
                        // 2) ControlKey + A
            // * I'm trying to get it to only post the second line and only log the line
            // when a modifier key + a-z 0-9 key is pressed with it.
        }
    }