找回密码
 立即注册

QQ登录

只需一步,快速开始

lzh3452

银牌会员

32

主题

188

帖子

3914

积分

银牌会员

积分
3914

活字格认证

lzh3452
银牌会员   /  发表于:2012-2-20 14:16  /   查看:6841  /  回复:7
我需要鼠标点击一个单元格时,焦点移到那一行,但不想看到被点的单元格和同行的其他单元格颜色不同,应该怎么设置?
我使用OperationMode=SingleSelect的显示效果倒是不错,不过第一次获取焦点时,ActiveRow并没有显示出颜色样式来,只有一个虚线框。

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-2-20 15:59:00
沙发

回复 1# lzh3452 的帖子

lzh3452 你好,
请尝试一下代码:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.RowMode;
  4.             fpSpread1.FocusRenderer = null;
  5.         }

  6.         private void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  7.         {
  8.             e.Cancel = true;
  9.             fpSpread1.ActiveSheet.SetActiveCell(e.Row, e.Column);
  10.             fpSpread1.ActiveSheet.ActiveCell.BackColor = Color.LightBlue;
  11.             fpSpread1.StartCellEditing(null, false);
  12.         }
复制代码
回复 使用道具 举报
lzh3452
银牌会员   /  发表于:2012-2-20 16:10:00
板凳

回复 2# iceman 的帖子

不行啊,设置RowMode那个ActiveCell的颜色就会不用,而且RowMode时可以编辑。如果此时ActiveCell背景色不变,可以满足我的一个需求。但另一个模式下,需要不可编辑,仍然需要SingleSelect才行啊。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-20 17:38:00
地板

回复 3# lzh3452 的帖子

lzh3452 你好,
请尝试一下代码:
  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.RowMode;
  4.             this.fpSpread1.FocusRenderer = null;
  5.         }

  6.         private void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  7.         {
  8.             e.Cancel = true;
  9.             fpSpread1.ActiveSheet.SetActiveCell(e.Row, e.Column);
  10.         }
复制代码
回复 使用道具 举报
lzh3452
银牌会员   /  发表于:2012-2-20 17:51:00
5#

回复 4# iceman 的帖子

只是去了两句而已,我都试过了,没有用的,ActiveCell始终是不同的颜色。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-20 18:04:00
6#

回复 5# lzh3452 的帖子

lzh3452 你好,
  1.         int prerow = 0;
  2.         int precol = 0;
  3.         private void Form1_Load(object sender, EventArgs e)
  4.         {
  5.             this.fpSpread1.Sheets[0].OperationMode = FarPoint.Win.Spread.OperationMode.RowMode;
  6.             this.fpSpread1.FocusRenderer = null;
  7.         }

  8.         private void fpSpread1_CellClick(object sender, FarPoint.Win.Spread.CellClickEventArgs e)
  9.         {
  10.             e.Cancel = true;
  11.             //reset 前一 ActiveCell 背景色。
  12.             this.fpSpread1.Sheets[0].Cells[prerow, precol].ResetBackColor();
  13.             fpSpread1.ActiveSheet.SetActiveCell(e.Row, e.Column);
  14.             //这里设置背景色,当然可以和当前行颜色相同
  15.             this.fpSpread1.Sheets[0].Cells[e.Row, e.Column].BackColor = Color.Red;
  16.             prerow = e.Row;
  17.             precol = e.Column;
  18.         }
复制代码
回复 使用道具 举报
lzh3452
银牌会员   /  发表于:2012-2-20 18:16:00
7#

回复 6# iceman 的帖子

就是说只能自己去设置颜色对吗?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-2-21 09:15:00
8#

回复 7# lzh3452 的帖子

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