找回密码
 立即注册

QQ登录

只需一步,快速开始

lh8350

论坛元老

33

主题

80

帖子

2万

积分

论坛元老

积分
23275

活字格认证

lh8350
论坛元老   /  发表于:2012-8-24 15:26  /   查看:6256  /  回复:3
可不可以锁定单元格区域的背景色,和单元格区域的其它设置,删除的时候只是删除数据呢?  im.Put(new FarPoint.Win.Spread.Keystroke(Keys.Delete, Keys.None), FarPoint.Win.Spread.SpreadActions.ClearSelectedCells);用这种方式删除。用这种方式删除的时候,如果设定的是整列,或者正行的背景色就不会被删除,但是如果是设置的单元格区域的背景色,这些背景色就被删除了,而且单元格的锁定状态也被删除了。

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-24 16:17:00
沙发
可以使用自定义的Action来实现只删除数据:
  1. InputMap im = spread.GetInputMap(InputMapMode.WhenFocused);

  2. ActionMap am = spread.GetActionMap();

  3. im.Put(new Keystroke(Keys.D9, Keys.Control), "HideRow");

  4. im.Put(new Keystroke(Keys.D9, Keys.Control | Keys.Shift), "UnhideRow");

  5. am.Put("HideRow", new HideRowAction());

  6. am.Put("UnhideRow", new UnhideRowAction());
复制代码
  1.     public class ClearValueAction : FarPoint.Win.Spread.Action
  2.     {
  3.         public override void PerformAction(object source)
  4.         {
  5.             if (source is SpreadView)
  6.             {
  7.                 SpreadView spread = (SpreadView)source;
  8.                 SheetView sheet = spread.Sheets[spread.ActiveSheetIndex];
  9.                 CellRange cr = sheet.GetSelection(0);
  10.                 for (int r = 0; r < cr.RowCount; r++)
  11.                 {
  12.                     for (int c = 0; c < cr.ColumnCount; c++)
  13.                     {
  14.                         sheet.Cells[cr.Row + r, cr.Column + c].ResetValue();
  15.                     }
  16.                 }
  17.             }
  18.         }
  19.     }
复制代码
回复 使用道具 举报
lh8350
论坛元老   /  发表于:2012-8-24 16:55:00
板凳
dof,可不可以发个demo啊
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-24 17:15:00
地板
请参考:
5806_CtrlV.zip (10.91 KB, 下载次数: 492)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部