c#按键在字段中写入

本文关键字:字段 | 更新日期: 2023-09-27 18:05:10

我正在编写一个windows窗体应用程序,我需要在按下键时设置布尔值为true。

足够简单,然而,因为我有一个文本框和一些组合框,每当我试图按下这个键,它只是写我在文本框/组合框中按下的任何键。如果我点击了应用程序的其他地方,这并不重要。

我试着做一个没有文本框和组合框的项目,它工作得很好。

我怎么能有两个输入字段和按键事件在同一形式?

c#按键在字段中写入

设置表单。属性,以便将所有击键事件传递给窗体的事件处理程序。一旦执行到达事件处理程序,就可以设置所需的任何变量,包括为每次击键设置一个布尔值。

关于如何处理表单级别的键盘输入的教程。

Windows Forms提供了处理键盘消息的能力窗体级别,在消息到达控件之前。

在表单级别处理键盘消息。

处理启动表单的KeyPress或KeyDown事件,并设置将KeyPreview属性设置为true,这样键盘消息就可以显示在它们到达表单上的任何控件之前由表单接收。

    public Form1()
    {
        this.KeyPreview = true;
        this.KeyPress +=
            new KeyPressEventHandler(Form1_KeyPress);
    }
    // Detect all numeric characters at the form level and consume 1, 
    // 4, and 7. Note that Form.KeyPreview must be set to true for this
    // event handler to be called.
    void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar >= 48 && e.KeyChar <= 57)
        {
            MessageBox.Show("Form.KeyPress: '" +
                e.KeyChar.ToString() + "' pressed.");
            switch (e.KeyChar)
            {
                case (char)49:
                case (char)52:
                case (char)55:
                    MessageBox.Show("Form.KeyPress: '" +
                        e.KeyChar.ToString() + "' consumed.");
                    e.Handled = true;
                    break;
            }
        }
    }