彩票走势图

DevExpress使用教程:向GridControl添加进度条控件

转帖|使用教程|编辑:我只采一朵|2014-09-16 09:46:11.000|阅读 9397 次

概述:本文将为大家介绍如何在DevExpress GridControl中添加进度条控件。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

本文将为大家介绍如何在DevExpress GridControl中添加进度条控件。

DXperience Universal Suite下载

首先可以使用 DevExpress GridControl 自带的进度条控件。

DevExpress GridControl 进度条控件

但是我要用一个方法来设置所有的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色。

那么就要自己手动的编写代码来完成了。

1 、绘制一个单元格进度条形状,当进度小于50%时显示为红色。

public void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            string s = e.CellValue as string;
             s = s.Substring(0, e.CellValue.ToString().Length - 1);
             decimal percent = Convert.ToDecimal(s); 
            int width = (int)(100 * Math.Abs(percent /100 ) * e.Bounds.Width / 100);
            Rectangle rect = new Rectangle(e.Bounds.X, e.Bounds.Y, width, e.Bounds.Height);
            Brush b = Brushes.Green;
            if (percent < 50)
            {
                b = Brushes.Red;
            }
            e.Graphics.FillRectangle(b, rect);
        }

2、点击 GridView 展开触发事件

private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            if (e.Column.FieldName == "CLASSPACE")
            {
                DrawProgressBar(e);

                e.Handled = true;

                DrawEditor(e); 
            } 
        }

3、上面两段代码其实效果已经出来了,只不过有一些瑕疵,单元格只显示数值,而不显示进度条(当点击单元格时数值会消失),那么需要我们再来手动的编写一段代码用来处理当单元格触发时一些操作。

private void DrawEditor(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            GridCellInfo cell = e.Cell as GridCellInfo;
            Point offset = cell.CellValueRect.Location;
            BaseEditPainter pb = cell.ViewInfo.Painter as BaseEditPainter;
            AppearanceObject style = cell.ViewInfo.PaintAppearance;
            if (!offset.IsEmpty)
                cell.ViewInfo.Offset(offset.X, offset.Y);
            try
            {
                pb.Draw(new ControlGraphicsInfoArgs(cell.ViewInfo, e.Cache, cell.Bounds));
            }
            finally
            {
                if(!offset.IsEmpty)
                {
                    cell.ViewInfo.Offset(-offset.X, -offset.Y);
                }
            }
        }

同时将单元格设置为不可编辑状态。

附最后显示效果 :

DevExpress GridControl 进度条控件

出处://www.cnblogs.com/Albin/


标签:DevExpressgridcontrol

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
DevExpress Universal Subscription

行业领先的界面控件开发包,帮助企业构建卓越应用!

DevExpress WPF Subscription

高效MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫动效界面。

DevExpress Silverlight Controls

高性价比高实用性的Silverlight用户界面控件套包,拥有大量的示例和帮助文档,开发者能够快速上手!

DevExpress WinForms Subscription

为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。

DevExpress DXperience Subscription

高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP