自定义Outlines分组样式

Spread for WinForms 6.0中提供了类似于Excel一样的Outlines分组显示方式,通过这种方式可以非常方便查看Spread中的数据,在Spread中提供了一种默认的显示风格,

发布于 2012/11/13 00:00

Spread for WinForms 6.0中提供了类似于Excel一样的Outlines分组显示方式,通过这种方式可以非常方便查看Spread中的数据,在Spread中提供了一种默认的显示风格,如下图所示:




不过有些时候,我们希望Spread的显示风格与您应用系统的显示风格保持一致,这时候我们就需要改变Spread中Outlines的显示样式,Spread也提供了这样的属性设置来改变Outlines的显示风格,比如通过下面的代码我们可以非常容易的实现自己的Outlines样式:
  1.    
    fpSpread1.ActiveSheet.Rows.Count = 11;
    
        fpSpread1.ActiveSheet.Columns.Count = 6;
    
    
    
        FarPoint.Win.Spread.EnhancedInterfaceRenderer outlinelook = new FarPoint.Win.Spread.EnhancedInterfaceRenderer();
    
    
    
        outlinelook.RangeGroupBackgroundColor = Color.LightGreen;
    
        outlinelook.RangeGroupButtonBorderColor = Color.Red;
    
        outlinelook.RangeGroupLineColor = Color.Blue;
    
        fpSpread1.InterfaceRenderer = outlinelook;
    
    
    
        fpSpread1.ActiveSheet.AddRangeGroup(0, 8, true);
    
        fpSpread1.ActiveSheet.AddRangeGroup(0, 5, true);
    
        fpSpread1.ActiveSheet.AddRangeGroup(1, 3, false);
    
        fpSpread1.ActiveSheet.AddRangeGroup(1, 2, false);
    
    复制代码
    实现的效果如下:




    当然,有时候我们希望实现更灵活的自定义功能,比如需要显示自己的“+”“-”,这时候我们就可以实现FarPoint.Win.Spread.IInterfaceRenderer接口,然后自己实现Outlines相关的显示风格
  1.    
    public class MyEnhancedInterfaceRenderer : FarPoint.Win.Spread.IInterfaceRenderer
    
        {
    
            FarPoint.Win.Spread.EnhancedInterfaceRenderer enhR = new FarPoint.Win.Spread.EnhancedInterfaceRenderer();
    
    
    
            #region IInterfaceRenderer Members
    
    
    
            public void PaintRangeGroupButton(System.Drawing.Graphics g, int x, int y, int width, int height, FarPoint.Win.Spread.GroupState groupState, bool rowGroup, bool isLeftToRight)
    
            {
    
                // 在这里实现自定义Button的逻辑
    
                if (groupState == FarPoint.Win.Spread.GroupState.Expanded)
    
                {
    
                    g.DrawIcon(new Icon("Icon/Minus.ico"), new Rectangle(x, y, width, height));
    
                }
    
                else if (groupState == FarPoint.Win.Spread.GroupState.Collapsed)
    
                {
    
                    g.DrawIcon(new Icon("Icon/Plus.ico"), new Rectangle(x, y, width, height));
    
                }
    
                
    
                //enhR.PaintRangeGroupButton(g, x, y, width, height, groupState, rowGroup, isLeftToRight);
    
            }
    
    
    
            #endregion
    
        }
    
    复制代码
    最终效果:



    源码下载:VS2010 + Spread for WinForms 6.0

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态