找回密码
 立即注册

QQ登录

只需一步,快速开始

jiangweihz

金牌服务用户

32

主题

80

帖子

760

积分

金牌服务用户

积分
760
jiangweihz
金牌服务用户   /  发表于:2017-4-21 10:26  /   查看:3547  /  回复:6
版主,spread控件剪切事件如何捕获?

6 个回复

倒序浏览
jiangweihz
金牌服务用户   /  发表于:2017-4-21 10:50:18
沙发
版主,如果封装控件,如何封装这个剪切事件?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-21 15:51:06
板凳
您是希望什么时候触发事件?Ctrl + X的时候还是 粘贴的时候
回复 使用道具 举报
jiangweihz
金牌服务用户   /  发表于:2017-4-21 16:06:20
地板
Ctrl+X时候触发
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-21 18:27:41
5#
那就重写ctrl + x 的keymap 先调用fpSpread1.ActiveSheet.ClipboardCut();然后加上您的逻辑,比如发送个事件。

http://sphelp.grapecity.com/WebH ... in-maps-action.html
回复 使用道具 举报
jiangweihz
金牌服务用户   /  发表于:2017-4-24 15:07:23
6#
如何剪切时,过滤行不影响?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-24 16:43:52
7#
调用 ClipboardCutAsStringSkipHidden Action
  1.         public Form15()
  2.         {
  3.             InitializeComponent();
  4.             ActionMap am = fpSpread1.GetActionMap();
  5.             InputMap im = fpSpread1.GetInputMap(InputMapMode.WhenFocused);
  6.             am.Put("MyClipboardCutAsStringSkipHidden", new MyClipboardCutAsStringSkipHidden());
  7.             im.Put(new Keystroke(Keys.X, Keys.Control), "MyClipboardCutAsStringSkipHidden");
  8.         }
  9.     }

  10.     public class MyClipboardCutAsStringSkipHidden : FarPoint.Win.Spread.Action
  11.     {
  12.         public override void PerformAction(object source)
  13.         {
  14.             if (source is SpreadView)
  15.             {
  16.                 SpreadView spread = (SpreadView)source;

  17.                 var action = spread.GetActionMap().Get(FarPoint.Win.Spread.SpreadActions.ClipboardCutAsStringSkipHidden);
  18.                 action.PerformAction(source);
  19.             }
  20.         }
  21.     }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部