0

假设我的应用程序由富文本框和一个按钮组成。我希望当用户在 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;
            }
        }
4

1 回答 1

2

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

但是你最好考虑处理TextChanged事件和检查TextLength,因为用户可以在 RichtextBox 中粘贴一些东西,这样就不会触发任何关键事件。

于 2015-09-23T10:10:17.917 回答