如何从 TextBox 中的用户获取所需的键并在 Keyboard.isKeyDown

我刚启动 C#,我想制作一个表单应用程序,它在 TextBox 中从用户那里获取密钥,然后以某种方式绑定该密钥并使用 SendKeys(),向我在代码 eg(e) 中设置的特定密钥发送垃圾邮件,我使用这段代码但是Keyboard.isKeyDown(Key.key)想要我一个“Key”的枚举,TexBox 返回一个字符串,甚至我将字符串转换为一个枚举,但它只想要我一个来自它自己的Key枚举的键,我的问题是如何将一个变量键传递给Keyboard.isKeyDown(Key.key)maybe完全我的方法不对,你能帮我处理这些代码或建议另一种方法来制作这个应用程序吗?


这是代码:


using System;

using System.Windows.Forms;

using System.Windows.Input;

using System.Threading;

using System.Runtime.InteropServices;


namespace WindowsFormsApp1

{

    public partial class Form1 : Form

    {

        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]

        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);


        [DllImport("USER32.DLL")]

        public static extern bool SetForegroundWindow(IntPtr hWnd);


        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            Thread TH = new Thread(PressBind);

            TH.SetApartmentState(ApartmentState.STA);

            CheckForIllegalCrossThreadCalls = false;

            TH.Start();

        }


        //i want to get the key from this textbox


        public void TxBxKTB_TextChanged(object sender, EventArgs e)

        {

            label2.Text = $"The binded key is : {TxBxKTB.Text.ToString()}";

            TextBox objTextBox = (TextBox)sender;

            string text = objTextBox.Text;

            var TextBoxText = Enum.Parse(typeof(Keys), text);

        }



慕村9548890
浏览 139回答 1
1回答

GCT1015

更新您可以使用Enum.Parse方法将字符串转换为Key枚举。使用它TryParse来处理无法将字符串转换为Key.void Z(){    string key_string = "F10";    if (Enum.TryParse(key_string, out Key key))    {        if (Keyboard.IsKeyDown(key))        {            // some logic        }    }    else    {        // ERROR: the string couldn't be converted to Key    }}
打开App,查看更多内容
随时随地看视频慕课网APP