找回密码
 立即注册

QQ登录

只需一步,快速开始

GPCT

初级会员

30

主题

76

帖子

232

积分

初级会员

积分
232

活字格认证

GPCT
初级会员   /  发表于:2014-1-2 12:05  /   查看:4593  /  回复:3
我们在使用C1FlexGrid时,选中行一般都是默认的Style,是统一的前景色背景色。但是现在期望做成这样的效果:
不要使用统一的背景色前景色,只需要将选中Cell进行一些灰化即可。

例如:一行有3个Cell,背景色分别是红黄蓝,我们期望这3个Cell被选中时,背景色依然是红黄蓝,只需要有点灰即可。

C1FlexGrid能做到么?请指点一下,谢谢~

如下是EITabelle实现的效果,我们想用C1FlexGrid来实现同样的效果。谢谢了~

本帖子中包含更多资源

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

x
我们改变不了环境,但是可以适应环境。
我们改变不了过去,但是可以把握未来。
我们改变不了别人,但是可以调整自己。

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-1-2 14:35:00
沙发
回复 1楼GPCT的帖子


你好,
需要通过 OwnerDrawCell 事件对特定Cell进行绘制,请尝试以下代码:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             c1FlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw;
  4.             c1FlexGrid1.OwnerDrawCell += new
  5.             C1.Win.C1FlexGrid.OwnerDrawCellEventHandler(c1FlexGrid1_OwnerDrawCell);
  6.         }

  7.         void c1FlexGrid1_OwnerDrawCell(object sender, OwnerDrawCellEventArgs e)
  8.         {
  9.             e.Style = c1FlexGrid1.GetCellStyleDisplay(e.Row, e.Col);
  10.             e.DrawCell();

  11.             if (e.Col == 2 && e.Row == 2)
  12.                 e.Graphics.FillRectangle(Brushes.Red, e.Bounds);
  13.             if (e.Col == 3 && e.Row == 3)
  14.                 e.Graphics.FillRectangle(Brushes.Red, e.Bounds);
  15.         }
复制代码
回复 使用道具 举报
GPCT
初级会员   /  发表于:2014-1-3 16:01:00
板凳
的确凑效,非常感谢~
我们改变不了环境,但是可以适应环境。
我们改变不了过去,但是可以把握未来。
我们改变不了别人,但是可以调整自己。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-1-3 16:30:00
地板
回复 3楼GPCT的帖子

不客气,有问题欢迎开新帖提问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部