我刚启动 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); }
1 回答
GCT1015
TA贡献1827条经验 获得超4个赞
更新
您可以使用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
}
}
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消