ben*_*rce 42
在Winforms中,禁用文本框上的剪切,复制和粘贴功能的最简单方法是将ShortcutsEnabled属性设置为false.
bry*_*ook 19
您必须子类化文本框,然后重写WndProc方法以在控件执行之前拦截Windows消息.
这是一个示例,说明拦截WM_PASTE消息的TextBox.
作为参考,这里是消息常量的定义:
您只需忽略入站消息,如下所示:
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_PASTE || m.Msg == WM_COPY || m.Msg == WM_CUT)
{
// ignore input if it was from a keyboard shortcut
// or a Menu command
}
else
{
// handle the windows message normally
base.WndProc(ref m);
}
}
Run Code Online (Sandbox Code Playgroud)
假设您有一个名为的TextBox textbox1
.听起来你想要禁用TextBox的剪切,复制和粘贴功能.
试试这个快速而肮脏的概念证明片段:
private void Form1_Load(object sender, EventArgs e)
{
ContextMenu _blankContextMenu = new ContextMenu();
textBox1.ContextMenu = _blankContextMenu;
}
private const Keys CopyKeys = Keys.Control | Keys.C;
private const Keys PasteKeys = Keys.Control | Keys.V;
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if ((keyData == CopyKeys) || (keyData == PasteKeys))
{
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
37073 次 |
最近记录: |