找回密码
 立即注册

QQ登录

只需一步,快速开始

ilbjyaya

高级会员

12

主题

27

帖子

1143

积分

高级会员

积分
1143

活字格认证

ilbjyaya
高级会员   /  发表于:2014-7-4 14:43  /   查看:5717  /  回复:5
有没有办法实现这种效果?

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-7-4 14:55:00
沙发
回复 1楼ilbjyaya的帖子

你好,
鼠标移动更改背景色实现方法如下:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.fpSpread1.MouseMove += fpSpread1_MouseMove;
  4.         }

  5.         private void fpSpread1_MouseMove(object sender, MouseEventArgs e)
  6.         {
  7.             HitTestInformation hif = this.fpSpread1.HitTest(e.X, e.Y);
  8.             int row = hif.ViewportInfo.Row;
  9.             int col = hif.ViewportInfo.Column;

  10.             this.fpSpread1.ActiveSheet.Cells[row, col].BackColor = Color.Red;
  11.         }
复制代码
回复 使用道具 举报
ilbjyaya
高级会员   /  发表于:2014-7-4 15:14:00
板凳
回复 2楼iceman的帖子

int row = hif.ViewportInfo.Row;
执行到这语句时,出错:“未将对象引用设置到对象的实例。”
ViewportInfo是NULL
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-4 17:36:00
地板
回复 3楼ilbjyaya的帖子

需要加个判断条件:

  1.         private void fpSpread1_MouseMove(object sender, MouseEventArgs e)
  2.         {
  3.             HitTestInformation hif = this.fpSpread1.HitTest(e.X, e.Y);

  4.             if (hif.ViewportInfo!=null)
  5.             {
  6.                 int row = hif.ViewportInfo.Row;
  7.                 int col = hif.ViewportInfo.Column;

  8.                 this.fpSpread1.ActiveSheet.Cells[row, col].BackColor = Color.Red;
  9.             }
  10.         }
复制代码

评分

参与人数 1满意度 +5 收起 理由
ilbjyaya + 5 可以用了

查看全部评分

回复 使用道具 举报
ilbjyaya
高级会员   /  发表于:2014-7-7 09:20:00
5#
可以了,谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-7-7 10:35:00
6#
回复 5楼ilbjyaya的帖子

恩,不客气。

评分

参与人数 1满意度 +5 收起 理由
ilbjyaya + 5 解决

查看全部评分

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