单元格里显示曲线

想要实现的效果如下:表格每一行都有一个曲线

TreeList与GridControl的设置方法类似。

1、先创建控件的数据源,我使用的是DataTable


        /// <summary>
        /// 生成一个DataTable
        /// </summary>
        /// <returns></returns>
        public static DataTable GetDataSource()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("ID", typeof(Int32))
            {
                AllowDBNull = false,
                AutoIncrement = true,
                AutoIncrementSeed = 1,
                AutoIncrementStep = 1
            });
            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Year", typeof(int)));
            for (int i = 1; i <=12 ; i++)
            {
                dt.Columns.Add(new DataColumn($"{i}月", typeof(double)));
            }
            dt.Columns.Add(new DataColumn("RowSum", typeof(double)));
            dt.Columns.Add(new DataColumn("RowAvr", typeof(double)));

            int index = 1;
            List<string> names = new List<string> { "张三","李四","王五"}; 
            foreach (var name in names)
            {
                for (int year = 2021; year <= 2024; year++)
                {
                    var random = new Random(year);
                    double sum = 0;
                    double[] numbs = new double[12];
                    for (int i = 0; i < numbs.Length; i++)
                    {
                        numbs[i] = random.NextDouble() * 100;
                        sum += numbs[i];
                    }

                    var itemArr = new List<object>() { index++, name, year };
                    Array.ForEach(numbs, x => itemArr.Add(x));
                    itemArr.Add(sum); 
                    itemArr.Add(sum / 12 );
                    dt.Rows.Add(itemArr.ToArray());
                    
                }  
            } 
            return dt;
        }

2、创建Column(与平时使用方法相同)

这里要注意的是:

(1)要显示曲线的那列需要指定ColumnEdit使用的是SparklineEdit控件

(2)曲线列的UnboundType的Object

3、创建曲线列RepositoryItemSparklineEdit的View对象,具体代码如下:


            //绑定数据源
            gridControl1.DataSource = Bll.BllMain.GetDataSource();

            //创建view对象
            var view = SparklineViewBase.CreateView(SparklineViewType.Line) ;
            if(view is LineSparklineView lineSparklineView)
            {
                //设置lineView上的每个点都有Marker
                lineSparklineView.ShowMarkers = true;
                //设置Marker的颜色
                lineSparklineView.MarkerColor = Color.Gold;
            }
            //设置view的颜色
            view.Color = Color.Blue; 
            
            //设置点高亮显示
            view.HighlightEndPoint = true;
            view.HighlightStartPoint = true;
            view.HighlightMaxPoint = true;
            view.HighlightMinPoint = true;
            
            //设置点的颜色
            view.MaxPointColor = Color.Red;
            view.MinPointColor = Color.Orange;
            view.StartPointColor = Color.DarkGreen;
            view.EndPointColor = Color.Purple;

            //把view对象绑定到单元格控件上
            repositoryItemSparklineEdit1.View = view;

4、RepositoryItemSparklineEdit列对应的数据是Object,我们需要通过代码指定这列具体单元格对应的的数据源


        private void gridView1_CustomUnboundColumnData(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDataEventArgs e)
        {
            if (e.IsGetData)
            { 
                List<double> values = new List<double>();
                DataRowView row = (DataRowView)e.Row;
                for (int i = startIndex; i < startIndex+12; i++)
                {
                    values.Add((double)row.Row.ItemArray[i]);
                }
                e.Value = values;//指定单元格的数据源
            }
        }

通过以上代码及设置即可实现想要的效果

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VB中,我们可以使用DataGridView控件来显示表格数据,并使用Chart控件来显示曲线。 要显示表格数据,首先需要添加一个DataGridView控件到窗体中。接着,我们可以通过设置DataGridView的DataSource属性,将数据绑定到DataGridView上。可以使用DataTable或者BindingSource作为数据源,具体取决于数据的来源和需求。例如,我们可以将查询得到的数据填充到DataTable中,然后将DataTable作为DataGridView的数据源,从而显示数据。 对于曲线显示,我们需要添加一个Chart控件到窗体中。然后,我们可以通过调用Chart控件的Series集合的Add方法,添加曲线数据。每个曲线可以由一系列的数据点组成,我们可以通过向Series的Points集合中添加数据点来定义曲线。数据点可以通过X和Y坐标来表示。可以根据需要设置曲线的样式、颜色等属性,以便更好地展示数据。 在数据源发生变化时,需要重新绑定数据到DataGridView和Chart控件上,以实时反映数据的改变。可以通过调用DataGridView的DataBind方法和Chart控件的DataBindXY方法,来重新绑定数据源。 除了基本的显示功能,VB还提供了丰富的控件和方法,可以用于更细致地定制和操作表格和曲线显示。例如,可以设置表头、行/列样式、单元格样式等;可以设置曲线的类型、坐标轴、图例等。通过灵活运用这些功能,可以实现更加复杂和个性化的显示效果。 总之,在VB中,通过使用DataGridView控件和Chart控件,我们可以方便地显示表格数据和曲线,以便更好地展示和分析数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值