找回密码
 立即注册

QQ登录

只需一步,快速开始

willian

论坛元老

9

主题

23

帖子

6491

积分

论坛元老

积分
6491

活字格认证

willian
论坛元老   /  发表于:2014-11-27 16:28  /   查看:9226  /  回复:8
如何定义flexgrid表头的行高

8 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-11-28 10:19:00
沙发
回复 1楼willian的帖子

看是第几行,直接设置行高就可以了。
  1. this.c1FlexGrid1.Rows[0].Height = 30;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
willian
论坛元老   /  发表于:2014-11-28 10:48:00
板凳
回复 2楼Alice的帖子

按照你提示的,显示出来的是数据的第一行,不是表头的高度,我要调的是表头的高度,是圈出来浅绿色的地方的高度
回复 使用道具 举报
willian
论坛元老   /  发表于:2014-11-28 11:10:00
地板
回复 2楼Alice的帖子

那两个问题还是没有解决,我传你一份demo,你直接在demo上改吧,表头的高度要有60,然后要有上边框和左边框。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-11-28 13:58:00
5#
回复 4楼willian的帖子

你好,看了你的Demo,你这个问题是WPF平台的。稍后我会移到XMAL平台。
之前的答复是WinForm平台的,XMAL平台请使用如下代码:
1.更改行高
  1. flexgrid.ColumnHeaders.Rows[0].Height = 50;
复制代码

2.固定行列:
在WPF下固定行列的代码参考:
  1. flexgrid.Rows.Frozen = 1;
  2.             flexgrid.Columns.Frozen = 1;
复制代码

这时候固定了第一行第一列。
文档参考:http://helpcentral.componentone. ... nrowsandcolumns.htm
这时候固定行列会有Forzon的线,如果不想用可以使用ForzenLinesBrush属性去除这条线。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
willian
论坛元老   /  发表于:2014-11-28 14:54:00
6#
回复 5楼Alice的帖子

第二个问题,我不是要固定行列,我是要表格外面的边框,那个demo运行出来的表格缺了上边框线和左边框线,如果用BorderThickness的话,那条线会很长。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-11-28 17:05:00
7#
回复 6楼willian的帖子

可以设置Column的BorderThickness。代码参考:
  1.             Thickness thick = new Thickness();
  2.             thick.Left = 1;
  3.             thick.Right = 1;
  4.             CellStyle cs = new CellStyle();
  5.             cs.BorderThickness = thick;
  6.             flexgrid.Columns[0].CellStyle = cs;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
willian
论坛元老   /  发表于:2014-11-29 11:21:00
8#
回复 7楼Alice的帖子

那我能不能只设置表头的一个单元格的边框属性
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-12-1 12:16:00
9#
回复 8楼willian的帖子

可以通过C1FlexGrid的CellFactory设置单元格的边框,非表头部分的。
代码参考:
  1. public class MyCellFactory : C1.WPF.FlexGrid.CellFactory
  2. {
  3.   List<C1.WPF.FlexGrid.CellRange> crw = new List<C1.WPF.FlexGrid.CellRange>();
  4.   public MyCellFactory()
  5.   {
  6.      crw.Add(new C1.WPF.FlexGrid.CellRange(0,0));
  7.      crw.Add(new C1.WPF.FlexGrid.CellRange(1,1));
  8.      crw.Add(new C1.WPF.FlexGrid.CellRange(2,2));
  9.      crw.Add(new C1.WPF.FlexGrid.CellRange(3,3));        
  10.   }
  11.    
  12.   public override Border CreateCellBorder(C1.WPF.FlexGrid.C1FlexGrid grid, C1.WPF.FlexGrid.CellType cellType, C1.WPF.FlexGrid.CellRange rng)
  13.   {
  14.      Border bdr = base.CreateCellBorder(grid, cellType, rng);

  15.      if (cellType == C1.WPF.FlexGrid.CellType.Cell)
  16.        if (crw.Contains(rng))
  17.        {
  18.            VisualBrush vb = new VisualBrush();
  19.            vb.Visual = new Rectangle() { Height = 10, Width = 40, Stroke = new SolidColorBrush(Colors.Red), StrokeDashArray = new DoubleCollection() { 1.0 } };
  20.                     
  21.            bdr.BorderThickness = new Thickness(2, 2, 2, 2);
  22.            bdr.BorderBrush = vb;               
  23.        }

  24.     return bdr;
  25.   }

  26. }
复制代码

表头部分单元格暂时没提供。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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