在C1FlexGrid的列头展示汇总

发布时间:2014/11/01 00:11 发布者:Alice

返回博客中心

C1FlexGrid控件具有展示、编辑、格式化、组织、总结以及打印数据等非常友好的功能。

本文着重介绍C1FlexGrid for Winforms其他的实用性应用,指导用户如何计算选择单元格区域的合计值,并且展示在列头。

本文会使用到C1FlexGrid的SelChangeAfterSelChange事件。

计算合计值

在C1FlexGrid的SelChange事件里,我们需要获取列的Caption和Index,并且循环此列选择单元格的个数。因此,为将来计算选择内容的合计值做准备。

代码参考:

private void c1FlexGrid1_SelChange(object sender, EventArgs e)
{
   total = null;
 
   //Get the respective Column's Caption & Index
   if (col_index == -1)
   col_name = c1FlexGrid1.Cols[c1FlexGrid1.Col].Caption;
 
   else if (c1FlexGrid1.Col != col_index)
   {
      c1FlexGrid1.Cols[col_index].Caption = col_name;
      col_name = c1FlexGrid1.Cols[c1FlexGrid1.Col].Caption;
   }
   col_index = c1FlexGrid1.Col;
 
   double sum_of_cells = 0;
 
   //Calculate the Sum of the Selection
   if (c1FlexGrid1.Cols[c1FlexGrid1.Col].DataType != System.Type.GetType("System.String"))
   {
      for (int i = c1FlexGrid1.Row; i <= c1FlexGrid1.RowSel; i++)
      sum_of_cells = sum_of_cells + Convert.ToDouble(c1FlexGrid1);
   }
   else
      MessageBox.Show("String Column!!!!!!!");
   total = col_name + " - SUM : " + sum_of_cells;
}

 

展示合计值

在计算完合计后,我们使用AfterSelChange事件在列头展示合计值。

将结果输出到列的Caption,代码参考如下:

private void c1FlexGrid1_AfterSelChange(object sender, C1.Win.C1FlexGrid.RangeEventArgs e)
 {
    //Display the Sum in column Header
    c1FlexGrid1.Cols[c1FlexGrid1.Col].Caption = total;
 }

 

如下图片能够帮助你理解这个功能。 

Win_Flex_DisplaySumInHeader

 

本文的示例下载地址:

Win_Flex_SumInHeader_CS1.zip (277.66 kb)

 

C1FlexGrid控件下载地址:/developer/componentone-winform

如果你对此存在问题,可以前往我们的技术社区:http://gcdn.grapecity.com.cn/

 

 


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网