C# 禁用复制粘贴

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Zhang_0507/article/details/82354982

方法一:

try catch
将异常抛出

try
{
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
}

不过这样的用户体验度不是很好

方法二:

用限制字符的方法,限制“C” 和“V” 的使用

  private void rTBShow_KeyDown(object sender, KeyEventArgs e)  
  {
         if (e.Control && e.KeyCode == Keys.C || e.KeyCode == Keys.V || e.KeyCode == Keys.A)
        {
            base.OnKeyDown(e);
            e.Handled = true;
        }
  }

方法三:

//设置文本框的keyPress事件
        private void TxtUserID_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = IsPaste;
        }
        bool IsPaste = false;
        //设置文本框的KeyDown事件
        private void TxtUserID_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode.ToString().ToUpper() == "V")
            {
                IsPaste = true;
            }
            else
            {
                IsPaste = false;
            }
        }
        //禁用鼠标右键的复制粘贴
        private void TxtUserID_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                TxtUserID.ContextMenu = new ContextMenu();
            }
        }

建议用第三种方法,比较万能,不过还是期待有更好的办法!

猜你喜欢

转载自blog.csdn.net/Zhang_0507/article/details/82354982