← 返回所有博客文章

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/