找回密码
 立即注册

QQ登录

只需一步,快速开始

fengzhongxia
初级会员   /  发表于:2011-4-9 20:45  /   查看:10141  /  回复:10
默认情况下。选中一个图形后,按DEL键将会删除这个图形。有什么方法让其不能删除呢?
图形的事件里和属性里都没有。

10 个回复

倒序浏览
gw0506
超级版主   /  发表于:2011-4-11 10:09:00
沙发
你可以参看“Default Keyboard Navigation”章节,Delete键默认对应的是DeleteShape操作。
想修改的话,重新设置InputMap即可。
例如:
  1. private void Form1_Load(object sender, System.EventArgs e)
  2. {

  3.    FarPoint.Win.Spread.InputMap im = new FarPoint.Win.Spread.InputMap();

  4.    // Define the operation of pressing Enter key in cells not being edited as "Move to the next row".

  5.    im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenFocused);

  6.    im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow);

  7.    // Define the operation of pressing Enter key in cells being edited as "Move to the next row".

  8.    im = fpSpread1.GetInputMap(FarPoint.Win.Spread.InputMapMode.WhenAncestorOfFocused);
  9.    im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Enter, Keys.None), FarPoint.Win.Spread.SpreadActions.MoveToNextRow);
  10. }
复制代码
回复 使用道具 举报
fengzhongxia
初级会员   /  发表于:2011-4-11 11:34:00
板凳
感谢
回复 使用道具 举报
fengzhongxia
初级会员   /  发表于:2011-4-11 21:46:00
地板
  1.         '设置选中图形按DEL键不删除图形
  2.         Dim im As FarPoint.Win.Spread.InputMap
  3.         im = frmSheets.fpsMain.GetInputMapWhenShapeHasFocus()
  4.         Dim k As New FarPoint.Win.Spread.Keystroke(Keys.Delete, Keys.Delete)
  5.         im.Put(k, FarPoint.Win.Spread.SpreadActions.DeleteShape)
  6.         frmSheets.fpsMain.SetInputMapWhenShapeHasFocus(im)
复制代码

我这样写的,不起效果。为啥?
回复 使用道具 举报
fengzhongxia
初级会员   /  发表于:2011-4-11 21:47:00
5#
  1. Dim k As New FarPoint.Win.Spread.Keystroke(Keys.none, Keys.Delete)
复制代码
回复 使用道具 举报
fengzhongxia
初级会员   /  发表于:2011-4-12 08:17:00
6#
我这样写的,不起效果。为啥?
  1. '设置选中图形按DEL键不删除图形

  2.         Dim im As FarPoint.Win.Spread.InputMap

  3.         im = frmSheets.fpsMain.GetInputMapWhenShapeHasFocus()

  4.         Dim k As New FarPoint.Win.Spread.Keystroke(Keys.none, Keys.Delete)

  5.         im.Put(k, FarPoint.Win.Spread.SpreadActions.DeleteShape)

  6.         frmSheets.fpsMain.SetInputMapWhenShapeHasFocus(im)

复制代码
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-4-12 09:19:00
7#
你这段代码是设置Delete键执行DeleteShape操作。逻辑写反了。
回复 使用道具 举报
fengzhongxia
初级会员   /  发表于:2011-4-12 09:57:00
8#
这样写也不行呀。。。郁闷。。。
我只是想做一个像EXCEL一样的分页标记。。。
希望这个控件的打印功能再加强一下就好了。
  1.         '设置选中图形按DEL键不删除图形
  2.         Dim im As FarPoint.Win.Spread.InputMap
  3.         im = frmSheets.fpsMain.GetInputMapWhenShapeHasFocus()
  4.         Dim k As New FarPoint.Win.Spread.Keystroke(Keys.None, Keys.Delete)
  5.         im.Put(k, FarPoint.Win.Spread.SpreadActions.DeleteShape)
  6.         frmSheets.fpsMain.SetInputMapWhenShapeHasFocus(im)
复制代码
回复 使用道具 举报
fengzhongxia
初级会员   /  发表于:2011-4-12 09:58:00
9#
设置好打印页面后,能自动分页,有这个功能就好了。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2011-4-12 10:11:00
10#
1. Keystroke的两个参数,第一个是按键,第二个是功能键。你写错了,应该是
  1. Dim k As New FarPoint.Win.Spread.Keystroke(Keys.Delete,Keys.None)
复制代码

2. 你将k设置为DeleteShape行为。可是你是想要该k不能删除shape,也就是不执行DeleteShape行为。应该这样写
  1. im.Put(k, FarPoint.Win.Spread.SpreadActions.None)
复制代码
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部