找回密码
 立即注册

QQ登录

只需一步,快速开始

jiangjn

注册会员

2

主题

4

帖子

18

积分

注册会员

积分
18
  • 89

    金币

  • 2

    主题

  • 4

    帖子

最新发帖
jiangjn
注册会员   /  发表于:2021-11-10 19:25  /   查看:3277  /  回复:3
1金币
我希望在应用视觉样式后,当选择单元格时,行列的Header颜色不发生变化,不变成橙色,保持蓝色。请问要如何实现?
C1FlexGrid1.VisualStyle = C1.Win.C1FlexGrid.VisualStyle.Office2010Blue

如果无法实现的话,我想知道要设定那些属性,能达到样式基本和C1.Win.C1FlexGrid.VisualStyle.Office2010Blue一致?

最佳答案

查看完整内容

1.这个目前没有办法改变,只能是将控件的BorderStyle 也设置为FixexSinge,但是没有提供bordercolor设置 2.由于没有hover事件,这个可以尝试用MouseMove事件,在里面进行判断,部分代码可以参考下面,还需要你扩展,另外这个还会和楼上提到的selectedcolumnheader和selectedrowheader冲突,selectedcolumnheader和selectedrowheader优先级更高,因此也需要同时设置,离开时也需要再还原样式,可能逻辑会复杂一些 3.左上角的 ...

3 个回复

正序浏览
jiangjn
注册会员   /  发表于:2021-11-11 10:12:45
3#
本帖最后由 jiangjn 于 2021-11-11 10:31 编辑
Richard.Ma 发表于 2021-11-11 10:03
如果是不想要行列的Header颜色不发生变化,不要设置VisualStyle

直接通过styles属性,去分别设置各个部 ...

十分感谢您的回答,我们现在正在使用C1TrueDBGrid和C1FlaxGrid,项目年代比较久远,之前的开发的内容是VB6.0,升级VB.NET后客户选择将表格升级为了C1TrueDBGrid,但这次客户定制的画面C1TrueDBGrid无法满足,所以我们换了C1FlaxGrid,既存的C1TrueDBGrid使用的Office2010Blue风格,为了保证风格一致,我们需要自定义C1FlaxGrid的样式。目前自定义时,有一下几个样式不知道要如何设置:
1、C1FlaxGrid最外侧边框的颜色
2、鼠标悬停在行头和列头上的时候,需要变橙色(通过事件实现?)
其他的差异暂时可以不对应,但是上面两个比较明显,容易被客户指摘。
请问这两个要如何解决呢?

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-11 10:03:12
2#
如果是不想要行列的Header颜色不发生变化,不要设置VisualStyle

直接通过styles属性,去分别设置各个部分的样式

比如将flexed(也就是固定行固定列部分),以及selectedcolumnheader和selectedrowheader都设置为浅蓝色,就是office2010的蓝色风格了




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-11-10 19:25:16
来自 4#
1.这个目前没有办法改变,只能是将控件的BorderStyle 也设置为FixexSinge,但是没有提供bordercolor设置

2.由于没有hover事件,这个可以尝试用MouseMove事件,在里面进行判断,部分代码可以参考下面,还需要你扩展,另外这个还会和楼上提到的selectedcolumnheader和selectedrowheader冲突,selectedcolumnheader和selectedrowheader优先级更高,因此也需要同时设置,离开时也需要再还原样式,可能逻辑会复杂一些

3.左上角的三角标建议可以通过OwnerDrawCell事件中进行绘制

  1.         private void C1FlexGrid1_MouseMove(object sender, MouseEventArgs e)
  2.         {
  3.             var hitinfo = c1FlexGrid1.HitTest();
  4.             if (hitinfo.Row < c1FlexGrid1.Rows.Fixed && hitinfo.Row >= 0)
  5.             {
  6.                 var cellrange = c1FlexGrid1.GetCellRange(hitinfo.Row, hitinfo.Column);
  7.                 cellrange.Style= c1FlexGrid1.Styles["hoverfixed"];
  8.                
  9.             }
  10.         }
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

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