找回密码
 立即注册

QQ登录

只需一步,快速开始

yin_tb

高级会员

53

主题

199

帖子

1018

积分

高级会员

积分
1018

微信认证勋章

yin_tb
高级会员   /  发表于:2021-10-15 12:28  /   查看:1993  /  回复:3
1金币
如下图,在Winform的load或我以Spread为底层创建一个控件,我用以下代码初始了表格头的网格线、背影色、字体、合并等等。
spread1.ActiveSheet.columnHead.Cell(X,Y).Borde
spread1.ActiveSheet.columnHead.Rows(0).BackColor=SystemColors.ActiveCaption
现在的问题是,当鼠标在表格头上或点击,表头和footer的背景色会变,我想不让他变,研究了半天,好像得用spreadskin吧,还有一些Renderer,
但没弄明白,请教一下。API手册是7.0的,好像不适用于13.0. 我在社区也查过资料,有的说用ActiveSheetView,但后来根本没这个了。
另外,我想问下,如果用了spreadskin,相当于是皮肤,会改变我自己画的金额线及字体等吧?
我想要的是,我初始的表头和footer的背景色不管焦点如何变化,保持不变。

1634272116(1).png141544798.png
凭证.png433789367.png

最佳答案

查看完整内容

这个可以通过设计器来更改,也可以通过代码, 代码的话,可以参考下面的,去修改ColumnHeaderDefaultStyle的ContainSelectBackColor即可,这个不会影响你自己设置的边框之类的样式

3 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-15 12:28:56
来自 2#
这个可以通过设计器来更改,也可以通过代码,

代码的话,可以参考下面的,去修改ColumnHeaderDefaultStyle的ContainSelectBackColor即可,这个不会影响你自己设置的边框之类的样式
  1.             fpSpread1.DefaultSkin = FarPoint.Win.Spread.DefaultSpreadSkins.Office2016Colorful;
  2.             (fpSpread1.DefaultSkin.ColumnHeaderDefaultStyle.Renderer as FlatColumnHeaderRenderer).ContainSelectBackColor=System.Drawing. Color.White;
复制代码
回复 使用道具 举报
yin_tb
高级会员   /  发表于:2021-10-15 17:37:03
3#
本帖最后由 yin_tb 于 2021-10-15 17:43 编辑

谢谢马老师,经你帮助,又看了英文文档,明白了。
我原本以为这种color,一般会做成属性如SelectColor等,就像ColumnHeader.Rows(0).BackColor这样轻松设置,但spread只把基本的color做成属性,可能是实现理念,为了皮肤处理或更强大灵活的设置,其它的color等很多设置全封装到Renderer里了。也是,如果都做成基本属性,确实太多了,不好办。
补充一句:突然发现,Spread好像要比TrueDbGrid强大很多,没深入比较,好像也比FlexGrid也有很多优点。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-10-15 17:51:30
4#
yin_tb 发表于 2021-10-15 17:37
谢谢马老师,经你帮助,又看了英文文档,明白了。
我原本以为这种color,一般会做成属性如SelectColor等, ...

恩, 各有优势吧,如果是要做一些excel兼容的操作或者行为spread就是一个必选项,

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