找回密码
 立即注册

QQ登录

只需一步,快速开始

ninja_aya

中级会员

54

主题

197

帖子

561

积分

中级会员

积分
561

活字格认证

ninja_aya
中级会员   /  发表于:2016-11-4 22:23  /   查看:3075  /  回复:3
我在keydown事件中捕获ctrl v的组合建,但是始终无法捕获到。请问如何keydown事件中捕获ctrl v的组合建
代码如下
private void TextControl_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && (e.KeyCode == Keys.V))
            {
                e.Handled = true;
            }
        }

3 个回复

倒序浏览
gw0506
超级版主   /  发表于:2016-11-7 15:29:30
沙发
Ctrl+V被吃掉了,你在keydown中拿不到。你要封掉粘贴,直接
  1. this._textControl.CanPaste = false;
复制代码
回复 使用道具 举报
ninja_aya
中级会员   /  发表于:2016-11-10 08:39:28
板凳
this._textControl.CanPaste = false;没用啊,他是只读的,我需要在编辑的时候动态设置是否可以黏贴
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-11-11 15:24:44
地板
抱歉,我的疏忽。这么做吧,如下代码,你一定能看懂。
  1.         this.textControl1.KeyDown += textControl1_KeyDown;
  2.         this.textControl1.PreviewKeyDown += textControl1_PreviewKeyDown;

  3.     private bool flag = false;
  4.     void textControl1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
  5.     {
  6.         if (e.Control && (e.KeyCode == Keys.V))
  7.         {
  8.             flag = true;
  9.         }
  10.     }

  11.     private void textControl1_KeyDown(object sender, KeyEventArgs e)
  12.     {
  13.         if (flag)
  14.         {
  15.             e.Handled = true;
  16.             flag = false;
  17.         }
  18.     }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部