屏蔽 Ctrl + C 和 X    KeyPress事件中捕获的(Ctrl + C) e.KeyChar == 3;
  private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
      int key = (int)e.KeyChar;
      if (Control.ModifierKeys == Keys.Control && (key == 3 || key == 24))
      {
        if (textBox1.SelectedText != "")
        {
          e.Handled = true;
        }
      }
    }--------------------------------------------------
现在没法在去重写TextBox ,只能用KeyPress 事件,KeyDown和KeyUp 都没法屏蔽.......上面这个写法是可以的,不知道是否有弊端.........

解决方案 »

  1.   

    KeyDown就
    Clipboard.SetDataObject(null);
      

  2.   

    private   void   textBox1_KeyDown(object   sender,   KeyEventArgs   e) 

            ((TextBox)sender).SelectionLength   =   0; 

    protected   override   void   WndProc(ref   Message   m) 
          { 
          if(m.Msg   !=   WM_PASTE)base.WndProc   (ref   m); 
          } 
    ShortcutsEnabled为False
      

  3.   

    public class MyTextBox : TextBox
    {
        public const int WM_COPY = 0x301;
        public const int WM_CUT = 0x300;
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_COPY || m.Msg == WM_CUT) return;//不处理
            base.WndProc(ref m);
        }
    }
    粘贴上面这个到你项目中编译,在工具栏中拖出这个控件,用这个。
      

  4.   

    设置禁用快捷方式即可
    TextBox textBox = new TextBox();
    textBox.ShortcutsEnabled = false;
      

  5.   


    谢谢各位的回答,几位经常在线的高手,还在每天为别人免费解答问题......佩服...佩服!2楼:
    Clipboard.SetDataObject(null); 
    //这个思路是错误的,复制数据的时候是在执行完KeyDown之后才去复制的,所以即使用Clipboard.Clear()也没用
    ---------------------------------------------------3楼,6楼:  Ctrl + V 等快捷键 也屏蔽掉了 我只屏蔽Ctrl + X和C
    ---------------------------------------------------4楼: 测试了下好像只能屏蔽 TextBox控件里的Ctrl + X 和 C, 其他的怎么屏蔽不了----------------------------------------------------
      

  6.   

    估计是我没说清楚哟,我这里只是拿TextBox举个例子!--------------------------------------------顺便问下我上面的方法可以吗,有什么弊端.....在我这里测试是可以屏蔽掉的,不知道是否有其他的啥问题.....---------------------------------------------我要屏蔽TextBox ,RichTextBox, DataGridView....能够复制数据的都要屏蔽,但是不能屏蔽Ctrl + V等功能,这个需求是后面提出来的...说是为了数据安全
      

  7.   

    杯具,我写的在RichText也行不通........
      

  8.   

    自己算是勉强解决啦!TextBox 要在KeyPress事件屏蔽
    e.Handled = true;RichTextBox 要在KeyDown事件里屏蔽
    e.Handled = true;DataGridView :用这句就可以屏蔽
    this.dataGridView1.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;