找回密码
 立即注册

QQ登录

只需一步,快速开始

frank.zhang
社区贡献组   /  发表于:2015-8-17 14:51:00
11#
回复 9楼keaitutu的帖子

您好,实现的思路是在SelectionChanged中判断单元格的类型,然后记录下来位置,离开的时候,再将颜色清除。
  1.         private int x, y;
  2.         public Form5()
  3.         {
  4.             InitializeComponent();
  5.             this.fpSpread1.SelectionChanged += new FarPoint.Win.Spread.SelectionChangedEventHandler(fpSpread1_SelectionChanged);
  6.             x = 0;
  7.             y = 0;
  8.         }

  9.         void fpSpread1_SelectionChanged(object sender, FarPoint.Win.Spread.SelectionChangedEventArgs e)
  10.         {
  11.             FarPoint.Win.Spread.Model.CellRange cr;
  12.             cr = e.View.Sheets[0].GetSelection(0);
  13.             this.fpSpread1.ActiveSheet.Cells[x, y].BackColor = Color.White;
  14.             if (this.fpSpread1.ActiveSheet.Cells[cr.Row, cr.Column].Locked)
  15.             {
  16.                 this.fpSpread1.ActiveSheet.Cells[cr.Row, cr.Column].BackColor = Color.Red;
  17.                 x = cr.Row;
  18.                 y = cr.Column;
  19.             }
  20.         }
复制代码


需要指出的是,以上实现的方法有一些边界条件没有判断,需要根据实际情况进行处理。
回复 使用道具 举报
rbgongming
论坛元老   /  发表于:2015-8-17 15:00:00
12#
回复 11楼frank.zhang的帖子

10#的办法应该可以解决的,我试过了。
而且代码简单。:Z

评分

参与人数 1金币 +500 收起 理由
frank.zhang + 500 优质解决方案

查看全部评分

把简单的事做好就是不简单,
把平凡的事做好就是不平凡。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-17 17:24:00
13#
回复 12楼rbgongming的帖子

哈哈,
你的实现方法确实可以。
回复 使用道具 举报
keaitutu
注册会员   /  发表于:2015-8-17 17:40:00
14#
多谢两位大侠,用10#的方法已经解决,感谢两位。
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-8-17 17:47:00
15#
您好,问题已经解决,本帖关闭,如有其它问题,请开新帖。

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢

评分

参与人数 1满意度 +5 收起 理由
keaitutu + 5 很感谢

查看全部评分

回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 立即注册
返回顶部