【发布时间】:2017-06-29 02:43:02
【问题描述】:
我有一个多行文本框,我正在尝试实现全选、复制、粘贴等快捷键(多行似乎禁用了一些本机快捷键)。如果在 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) 的正常操作(我想在粘贴之前删除换行符)。我不知道是什么原因造成的,所以任何想法都会很棒。
谢谢。
【问题讨论】:
-
你试过 assgin
textBox3.Text而不是Paste方法吗? -
您确定要禁止其他键的正常操作吗?选择和复制仍然可以生效,只要您的代码发生在之后,您就不会注意到。您需要在按键输入到达控件之前拦截它。发布一个很好的minimal reproducible example,展示你已经拥有的东西,解释你到目前为止做了什么,为什么你认为它应该起作用,以及具体你不知道什么。跨度>
标签: c# .net winforms textbox keyevent