找回密码
 立即注册

QQ登录

只需一步,快速开始

aladdin

中级会员

8

主题

14

帖子

688

积分

中级会员

积分
688

活字格认证

aladdin
中级会员   /  发表于:2013-12-19 16:36  /   查看:7450  /  回复:4
如何能让当光标不在spread上的时候那个当前单元格的黑框框消失,当光标回到spread的时候再表示出来?

4 个回复

倒序浏览
roger.wang
社区贡献组   /  发表于:2013-12-19 17:54:00
沙发
回复 1楼aladdin的帖子

抱歉,这个目前未提供接口。

您要是用到选择器,这里有一个demo可供参考:
请版本帮忙这样的选择器怎么写?
回复 使用道具 举报
aladdin
中级会员   /  发表于:2013-12-20 09:37:00
板凳
回复 2楼roger.wang的帖子

那这个黑框可否改变下粗细或者变虚线等等?
spdData.FocusRenderer = Nothing这样写可以完全没有框框,
Dim sp As FarPoint.Win.Spread.IFocusIndicatorRenderer
“  Sub Paint(g As System.Drawing.Graphics, x As Integer, y As Integer, width As Integer, height As Integer, left As Boolean, top As Boolean, right As Boolean, bottom As Boolean)”
        Dim gg As System.Drawing.Graphics
这个gg该怎么去画图呢?
        sp.Paint()这个里面的参数如何设定?
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-20 09:52:00
地板
回复 3楼aladdin的帖子

黑框变细、变粗设置属性可以Thickness 试试,代码如下:

  1. Dim rend As New EnhancedFocusIndicatorRenderer()
  2. rend.Thickness = 1
  3. fpSpread1.FocusRenderer = rend
复制代码
回复 使用道具 举报
roger.wang
社区贡献组   /  发表于:2013-12-20 10:10:00
5#
回复 3楼aladdin的帖子

Spread默认提供了几种Renderer(可修改颜色、线条宽度)
静态虚线框 CustomFocusIndicatorRenderer
动态虚线框 MarqueeFocusIndicatorRenderer
加粗黑线框 EnhancedFocusIndicatorRenderer

这个帖子您提到了动态:鼠标在当前ActiveCell则显示黑框,鼠标移开则不显示,这个可通过触发Move事件处理,参考代码如下:
  1. FarPoint.Win.Spread.CustomFocusIndicatorRenderer cust = new CustomFocusIndicatorRenderer();
  2.             fpSpread1.FocusRenderer = cust;

  3.             fpSpread1.MouseMove += fpSpread1_MouseMove;
  4.         }

  5.         void fpSpread1_MouseMove(object sender, MouseEventArgs e)
  6.         {
  7.             HitTestInformation info = fpSpread1.HitTest(e.X, e.Y);
  8.             if (info == null || info.ViewportInfo == null)
  9.             {
  10.                 return;
  11.             }

  12.             int row = info.ViewportInfo.Row;
  13.             int col = info.ViewportInfo.Column;

  14.             Cell cel = fpSpread1.ActiveSheet.ActiveCell;
  15.             if (cel.Row.Index == row && cel.Column.Index == col)
  16.             {
  17.                 fpSpread1.FocusRenderer = new AnimatedDefaultFocusIndicatorRenderer();
  18.             }
  19.             else
  20.             {
  21.                 fpSpread1.FocusRenderer = null;
  22.             }
  23.         }
复制代码




如要使用Pain自绘的方法,这个需要GDI+的知识,可参考:GDI+ (Windows)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部