我有2个问题。首先,我想做一些类似下面的代码,阻止文本框中的(CTRL + C),但它不起作用。它不会在消息框中显示任何内容。
第二个问题是当用户按下(CTRL + C)时我怎么能做什么都不会保存在剪贴板中或按下后自动删除值(CTRL + C)
以下是代码:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.C && e.KeyCode == Keys.LControlKey)
{
MessageBox.Show("NOT ALLOWED");
}
}
答案 0 :(得分:3)
你将KeyCode
的平等与两个不同的值进行比较,它永远不会同时存在。我认为您打算检查Control
:
if(e.KeyCode == Keys.C && e.Control) {
MessageBox.Show("NOT ALLOWED");
}
至于停止复制操作,它应该像以下一样简单:
e.SuppressKeyPress = true;
您可以随时使用以下方式清除剪贴板:
Clipboard.Clear();
答案 1 :(得分:0)
您可以使用系统级键盘挂钩来拦截任何键盘敲击组合。
键盘挂钩函数是用VC ++中的.net编写的。但是对于在c#中使用,有基于pinvoke的包装库。
在.net中搜索键盘钩子。
有两种类型的钩子:应用程序级别和系统级别。根据您的要求,您可以做出正确的选择。
我希望这可以帮助你继续前进。