找回密码
 立即注册

QQ登录

只需一步,快速开始

恶马Maximus

银牌会员

4

主题

9

帖子

3138

积分

银牌会员

积分
3138

活字格认证

恶马Maximus
银牌会员   /  发表于:2012-12-6 15:34  /   查看:5123  /  回复:3
如果设置了selectionunit = cell, selectionpolicy = range
那么在选中了一行之后,可以只更改选中区中部分cell的前景颜色么?

比如有一行三列 A B C
AC 字体为红, C是白色
选中该行后,能使AC的selectionForeColor = Color.Red 而C的selectionForeColor还是继承默认颜色么?

如果不行,可以更改下selection方式来实现么。
小生新人一个,望相助。

3 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-6 17:55:00
沙发
恶马Maximus 你好

该功能需要在SelectionChanged事件中通过代码来控制,大概实现方法如下:
  1.     private void Form1_Load(object sender, EventArgs e)
  2.     {
  3.         fpSpread1.ActiveSheet.SelectionUnit = FarPoint.Win.Spread.Model.SelectionUnit.Cell;
  4.         fpSpread1.ActiveSheet.SelectionPolicy = FarPoint.Win.Spread.Model.SelectionPolicy.Range;

  5.         fpSpread1.SelectionChanged += new FarPoint.Win.Spread.SelectionChangedEventHandler(fpSpread1_SelectionChanged);
  6.     }

  7.     void fpSpread1_SelectionChanged(object sender, FarPoint.Win.Spread.SelectionChangedEventArgs e)
  8.     {
  9.         if (e.Range.IntersectColumn(0) && e.Range.IntersectColumn(1))
  10.         {
  11.             fpSpread1.ActiveSheet.Columns[0, 1].ForeColor = Color.Blue;
  12.         }
  13.         else
  14.         {
  15.             fpSpread1.ActiveSheet.Columns[0, 1].ForeColor = Color.Black;
  16.         }
  17.     }
复制代码
回复 使用道具 举报
恶马Maximus
银牌会员   /  发表于:2012-12-7 17:12:00
板凳
回复 2楼dof的帖子

谢谢你的解答 dof。
我的问题问的太简单,没有表达好我的意思。但是你的回复还是为我解决问题提供了启发。
谢谢 以后多多指教
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-12-10 09:10:00
地板
不客气,如有需要欢迎随时发帖。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部