0

我有 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");
        }

    }
4

2 回答 2

3

您正在将KeyCodefor 相等性与两个不同的值进行比较,并且永远不会两者兼而有之。我认为您的意思是检查Control

if(e.KeyCode == Keys.C && e.Control) {
    MessageBox.Show("NOT ALLOWED");
}

至于停止复制操作,应该很简单:

e.SuppressKeyPress = true;

您可以随时使用以下命令清除剪贴板:

Clipboard.Clear();
于 2012-08-04T17:17:49.303 回答
0

您可以使用系统级键盘挂钩来拦截键盘敲击的任何组合。

键盘挂钩函数是用 .net 中的 VC++ 编写的。但是对于在 c# 中使用,有基于 pinvoke 的包装器库。

在 .net 中搜索键盘挂钩。

有两种类型的钩子:应用程序级别和系统级别。根据您的要求,您可以做出正确的选择。

我希望这可以帮助您进一步进行。

于 2012-08-04T17:22:51.320 回答