在多行文本框中处理ctrl + v c#

时间:2017-06-29 02:43:03

标签: c# .net winforms textbox keyevent

我有一个多行文本框,我试图实现快捷键选择全部,复制,粘贴等(多行似乎禁用了一些本机快捷方式)。如果在Control KeyDown上,我有一个KeyCode开关内的代码。

case Keys.A:
    e.Handled = true;
    textBox3.Text = textBox3.Text.Replace(Environment.NewLine, "");
    textBox3.SelectAll();
    break;
case Keys.C:
    e.Handled = true;
    if (textBox3.SelectedText.Length > 0)
    {
        Clipboard.SetText(textBox3.SelectedText);
    }
    break;
case Keys.V:
    e.Handled = true;
    textBox3.Paste(Clipboard.GetText().Replace(Environment.NewLine, ""));
    break;

前两个工作正常,但我无法抑制(Ctrl + V)的正常操作(我想在粘贴前删除换行符)。我不知道造成这种情况的原因,所以任何想法都会很棒。

感谢。

1 个答案:

答案 0 :(得分:0)

我必须为所有相同的键添加一个PreviewKeyDown处理程序,将e.IsInputKey设置为true。另外,我必须在普通的keydown处理程序中添加e.SuppressKeyPress = true;

相关问题