修饰符+不同的字符,Win Forms

时间:2015-09-23 09:45:33

标签: c# winforms richtextbox keyevent modifiers

让我们说我的应用程序包含Rich Text Box和一个按钮。我希望当用户在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;
            }
        }

1 个答案:

答案 0 :(得分:2)

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

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