C# 通过什么方法检查按键是否按下?

C# 通过什么方法检查按键是否按下?,c#,winforms,keypress,C#,Winforms,Keypress,好的,所以我创建了一个名为KeyCheck()的方法,它应该检查是否按下了一个键(特别是回车键),如果是,它将按按钮1 不幸的是,当我调用该方法时,我不确定传递给它什么。我想让它知道什么时候按下回车键 public partial class Form1 : Form { public void GameStart() { richTextBox1.WordWrap = true; richTextBox1.SelectionAlignment =

好的,所以我创建了一个名为
KeyCheck()
的方法,它应该检查是否按下了一个键(特别是回车键),如果是,它将按
按钮1

不幸的是,当我调用该方法时,我不确定传递给它什么。我想让它知道什么时候按下回车键

public partial class Form1 : Form
{
    public void GameStart()
    {
        richTextBox1.WordWrap = true;
        richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
        richTextBox1.Text = "Hello, Welcome to Grandar!";
    }

    public Form1()
    {
        InitializeComponent();
        GameStart();
        //What variable do I pass to KeyCheck Method?
        KeyCheck();
    }

    private void KeyCheck(KeyPressEventArgs k)
    {
        if (k.KeyChar == (char)Keys.Enter)
        {
            button1.PerformClick();
        }
    }

    private void richTextBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }
}
查看此页面:

您需要与其他方法类似的方法,包括sender对象和event args

if (e.KeyCode < Keys.Enter) {
    //Your logic
}
if(e.KeyCode
这里需要注意几件事:

a) 您真的想按照示例代码的建议直接调用
KeyCheck
,还是应该将其连接为表单上的处理程序(您所请求的信息将自动提供-需要更改签名以与其他一些方法中的标准处理程序对齐)

b) 我认为你不能像现在这样调用
KeyCheck
方法,除非你连接另一个事件来捕获按键,然后通过更新
newkeypressevent(…)

因此,为了回答您的问题,我认为您需要类似(伪代码)的东西

订阅此:

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.KeyPress_Method);
以及检查Enter键的方法:

void KeyPress_Method(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13) // enter key
    {
        // your code
    }
}
void KeyPress_Method(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)13) // enter key
    {
        // your code
    }
}