找回密码
 立即注册

QQ登录

只需一步,快速开始

KNight

中级会员

18

主题

217

帖子

713

积分

中级会员

积分
713

活字格认证微信认证勋章元老葡萄

QQ
KNight
中级会员   /  发表于:2014-10-17 13:27  /   查看:7361  /  回复:8
现状是,C1FlexGrid的纵向滚动条有效果,可以上下滚动浏览数据;但是横向滚动条可以滚动,然后列头随之滚动,但是内容却不动,纠结了,这个要在哪里设置啊?

8 个回复

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

我总结下你的步骤。
1.滚动横向滚动条,请问请问你是用什么方式做横向滚动的,是鼠标拖拽么?
2.列头随之滚动,但内容不动。你是说你移动了横向滚动条后,仅仅列头发生滚动,但单元格保持原来的位置么?

默认情况下,横向滚动条是可以滚动的。你看看我对你问题描述的理解是否正确,然后看看是不是你重现这个问题还用什么其他的步骤?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-10-17 16:42:00
板凳
回复 2楼Alice的帖子

1:鼠标拖动滚动轴或者在Grid上按住往右边移动,内容区域的单元格都不会动;
2:嗯 是的

原因找到了,是因为Rows里添加的都是我自定义的继承于GroupRow的行对象,
public class ExcelRow : GroupRow;把继承改成Row就可以了;但是看Demo里的ExcelBook里,它也是重写一个ExcelRow继承于GroupRow的,然后插入,想知道的是,Rows里插入自定义的继承于GroupRow的行对象时,滚动条需要重写什么方法吗?
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-17 18:33:00
地板
回复 3楼KNight的帖子

请问你说的ExcelRow和C1FlexGrid有什么关系?如果是你自定义的类,能否提供相关代码,根据代码来看看如何帮助你快速的解决问题。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-10-20 11:21:00
5#
回复 4楼Alice的帖子
  1. public class ExcelRow : C1.Silverlight.FlexGrid.GroupRow
  2.     {
  3.         # region 私有变量
  4.         // 存储该行对应列的单元格样式
  5.         private Dictionary<Column, CellStyle> m_CellStyles;
  6.         # endregion
  7.         # region 方法
  8.         public ExcelRow(ExcelRow excelRow)
  9.         {
  10.             if (excelRow != null &amp;&amp; excelRow.Grid != null)
  11.             {
  12.                 foreach (Column column in excelRow.Grid.Columns)
  13.                 {
  14.                     CellStyle cellStyle = excelRow.GetCellStyle(column);
  15.                     if (cellStyle != null)
  16.                     {
  17.                         this.SetCellStyle(column, cellStyle.Clone());
  18.                     }
  19.                 }
  20.             }
  21.         }
  22.         public ExcelRow()
  23.             : this(null)
  24.         { }
  25.         /// <summary>
  26.         /// 设置该行里某列的单元格样式
  27.         /// </summary>
  28.         /// <param name="col">某列</param>
  29.         /// <param name="style">单元格样式</param>
  30.         public void SetCellStyle(Column col, CellStyle style)
  31.         {
  32.             if (style != GetCellStyle(col))
  33.             {
  34.                 if (m_CellStyles == null)
  35.                 {
  36.                     m_CellStyles = new Dictionary<Column, CellStyle>();
  37.                 }
  38.                 m_CellStyles[col] = style;
  39.                 if (Grid != null)
  40.                 {
  41.                     // 在指定单元格内重新绘制元素
  42.                     Grid.Invalidate(new CellRange(this.Index, col.Index));
  43.                 }
  44.             }
  45.         }
  46.         /// <summary>
  47.         /// 获取该行里某列的单元格样式
  48.         /// </summary>
  49.         /// <param name="col">某列</param>
  50.         /// <returns>单元格样式</returns>
  51.         public CellStyle GetCellStyle(Column col)
  52.         {
  53.             CellStyle cellStyle = null;
  54.             if (m_CellStyles != null)
  55.             {
  56.                 m_CellStyles.TryGetValue(col, out cellStyle);
  57.             }
  58.             return cellStyle;
  59.         }
  60.         # endregion
  61.     }
复制代码
在C1FlexGrid初始化添加行时,采用
  1. ExcelRow newRow = new ExcelRow();
  2.                     newRow.Height = row.Height;// 行高
  3.                     newRow.IsReadOnly = true;
  4.                     grid.Rows.Add(newRow);
复制代码
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-10-20 11:22:00
6#
回复 4楼Alice的帖子

此时,C1FlexGrid的内容单元格是不会随横向滚动条滚动的
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-20 14:38:00
7#
回复 6楼KNight的帖子

你可以尝试下设置以下属性:C1FlexGrid.AreRowGroupHeadersFrozen 为false。

评分

参与人数 1满意度 +5 收起 理由
KNight + 5 正解

查看全部评分

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
KNight
中级会员   /  发表于:2014-10-21 12:18:00
8#
万分感谢,该问题已解决
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-10-21 14:41:00
9#
回复 8楼KNight的帖子

不用客气。

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

葡萄城控件服务团队

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