我的代码是:

   private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if ((e.Key==Key.LeftCtrl && e.Key==Key.C) || (e.Key==Key.RightCtrl && e.Key==Key.C))
        {
            MessageBox.Show("Copy not allowed !");
            e.Handled = true;

        }
    }


another way我尝试过的是:

    private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if ((e.Key==Key.C) && (Keyboard.Modifiers==ModifierKeys.Control))
        {
            MessageBox.Show("Copy not allowed !");
            e.Handled = true;
        }


    }


但是它们不起作用!

请不要告诉我设置Focusable="False"IsHitTestVisible="False"

因为在那之后,我不能使用滚动条!

请帮忙。
谢谢。

最佳答案

您可以处理PreviewKeyDown事件...您几乎已经拥有了它,您只需要对(&)Keyboard.Modifiers进行操作,因为它可能包含的内容不仅限于ModifierKeys.Control

private void PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.C && (Keyboard.Modifiers & ModifierKeys.Control) ==
        ModifierKeys.Control)
    {
       MessageBox.Show("CTRL + C was pressed");
    }
}

关于c# - 如何在WPF中的RichTextBox中禁用Ctrl + A和Ctrl + C?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19831896/

10-11 06:51