请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

zhangyi

初级会员

31

主题

90

帖子

269

积分

初级会员

积分
269

活字格认证

zhangyi
初级会员   /  发表于:2014-12-16 19:50  /   查看:5523  /  回复:5
由于大量用到C1FlexGrid,有许多相同的设置和功能,所以我尝试扩展了C1FlexGrid---->myGrid
遇到一个问题,在扩展类中,我改变C1FlexGrid的当前格的背景色,在其它form中引用这个myGrid后,当前格的背景达到了想要的效果
但我在扩展类改成其它的颜色,重新生成,但引用这个myGrid的地方还是原来的颜色
相关代码:

  1. namespace myControls
  2. {
  3.     public class myGrid : C1.Win.C1FlexGrid.C1FlexGrid
  4.     {
  5.         private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
  6.         private System.Windows.Forms.ToolStripMenuItem 复制Tool;

  7. .........
  8.         public override void BeginInit()
  9.         {
  10.             base.BeginInit();
  11.             //base.Styles["Fixed"].TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter;
  12.             base.Styles.Focus.BackColor = System.Drawing.Color.Goldenrod;
  13.             ////base.AutoResize = true;
  14.             base.AutoClipboard = true;
  15.             this.initTool();
  16.         }
复制代码



当我在扩展类中改变:
base.Styles.Focus.BackColor = System.Drawing.Color.Goldenrod;
重新生成,在所引用的form中没有变化,还是之前的那个颜色

5 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-12-17 10:54:00
沙发
回复 1楼zhangyi的帖子

未重现该问题。
测试步骤如下:
1.尝试在如下代码更改Focus的背景色:
  1. public class myGrid : C1.Win.C1FlexGrid.C1FlexGrid
  2.     {
  3.         protected override void InitLayout()
  4.         {
  5.             base.InitLayout();
  6.             base.Styles["Focus"].BackColor = System.Drawing.Color.Goldenrod;
  7.         }
  8.     }
复制代码

2.编译后,从工具箱将myGrid拖到Form。
3.运行后,鼠标点击myGrid得到Focus,得到Focus的单元格背景色变成设置的颜色。

如果想设置的是Highlight的单元格背景色,请设置base.Styles["Highlight"].BackColor = System.Drawing.Color.Goldenrod;

评分

参与人数 1满意度 +5 收起 理由
zhangyi + 5 谢谢

查看全部评分

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
zhangyi
初级会员   /  发表于:2014-12-17 11:44:00
板凳
回复 2楼Alice的帖子

未重现该问题。
测试步骤如下:
1.尝试在如下代码更改Focus的背景色:public class myGrid : C1.Win.C1FlexGrid.C1FlexGrid

    {

        protected override void InitLayout()

        {

            base.InitLayout();

            base.Styles["Focus"].BackColor = System.Drawing.Color.Goldenrod;

        }

    }

复制代码2.编译后,从工具箱将myGrid拖到Form。
3.运行后,鼠标点击myGrid得到Focus,得到Focus的单元格背景色变成设置的颜色。

/////////
这个时候,如果我改变myGrid 里的
base.Styles["Focus"].BackColor = System.Drawing.Color.Goldenrod;
重新编译myGrid
我这里引用mygrid的form不会有变化,还是System.Drawing.Color.Goldenrod;
回复 使用道具 举报
zhangyi
初级会员   /  发表于:2014-12-17 11:57:00
地板
回复 2楼Alice的帖子

我刚才重新建了个项目试了一下,达到你说的效果,
但不知为何之前有几个项目出现我说的问题
回复 使用道具 举报
zhangyi
初级会员   /  发表于:2014-12-17 14:18:00
5#
回复 2楼Alice的帖子

谢谢,问题已经找到
原因是有几个form里我又对mygrid重新设了背景色
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-17 14:55:00
6#
回复 5楼zhangyi的帖子

好的,谢谢你的反馈。
此问题结束,如果有新问题欢迎提问。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部