修改器+不同的图表,Winforms

modifier + different char, Win Forms

假设我的应用程序包含富文本框和一个按钮。我希望当用户在 RTB 中按下某个键时启用该按钮,但它不能是任何修饰符。

我可以在 PreviewKeyDown 之类的一些 KeyEvent 中处理这个问题,但是当我按下修饰符 + 其他字符时它不起作用,例如 SHIFT + S,这是有效的,因为结果是字母 S。有没有办法分开我的需求还是我应该使用一些不同的方法?我可以使用 TextChanged,但我已经编写了更多操作,我更愿意那样做。

简单说明:

 private void richTextBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (!e.Alt && !e.Control && !e.Shift)
            {
                this.button1.Enabled = true;
                    else
                this.button1.Enabled = false;
            }
        }

由于 KeyPress 事件发生在按下字符、space 或后退space 键且控件具有焦点且修改键对此事件没有影响时,似乎使用 KeyPress 可能会对您有所帮助。

但您最好考虑处理 TextChanged 事件并检查 TextLength,因为用户可以在 RichtextBox 中粘贴内容,这样 none 键事件就会触发。