DEV控件之ChartControl用法

DEV控件中的ChartControl是一个强大的图表控件,可以用于显示各种类型的数据。它支持多种常见的图表类型,例如柱状图、折线图、面积图、圆饼图、散点图、泡泡图等等。本文将详细介绍ChartControl的使用方法,并提供一些实际的案例说明。

1. 添加ChartControl控件

在VS中新建一个项目,打开设计窗口,找到工具箱中的ChartControl控件,将其拖拽到窗口上即可添加。

2. 配置ChartControl属性

在添加完ChartControl控件之后,可以通过设置各种属性来配置它的外观和行为。以下是一些常用的属性:

(1)ChartType:图表类型,可以设置为Area、Bar、Column、Line、Pie等。

(2)DataSource:数据源,可以将数据绑定到控件上。

(3)Series:数据系列,可以添加多个系列以显示不同的数据。

(4)Legends:图例,可以显示图表中的不同部分的说明信息。

(5)Title:标题,可以设置图表的标题。

(6)Axis:坐标轴,可以设置图表中的横纵坐标轴。

3. 绑定数据源

要显示数据,需要将数据绑定到ChartControl控件上。通常,我们可以使用数据表、数据集、数据视图等。以下是一些绑定数据源的示例代码。

(1)从数据表绑定数据

```csharp

DataTable dt = new DataTable();

dt.Columns.Add("Month", typeof(string));

dt.Columns.Add("Sales", typeof(int));

dt.Rows.Add("January", 100);

dt.Rows.Add("February", 150);

dt.Rows.Add("March", 200);

chartControl1.DataSource = dt;

chartControl1.SeriesDataMember = "Month";

chartControl1.SeriesTemplate.ArgumentDataMember = "Month";

chartControl1.SeriesTemplate.ValueDataMembers.AddRange("Sales");

```

(2)从数据集绑定数据

```csharp

DataSet ds = new DataSet();

DataTable dt = new DataTable();

dt.Columns.Add("Month", typeof(string));

dt.Columns.Add("Sales", typeof(int));

dt.Rows.Add("January", 100);

dt.Rows.Add("February", 150);

dt.Rows.Add("March", 200);

ds.Tables.Add(dt);

chartControl1.DataSource = ds.Tables[0];

chartControl1.SeriesDataMember = "Month";

chartControl1.SeriesTemplate.ArgumentDataMember = "Month";

chartControl1.SeriesTemplate.ValueDataMembers.AddRange("Sales");

```

(3)从数据视图绑定数据

```csharp

DataView dv = new DataView(dt);

dv.RowFilter = "Sales > 100";

chartControl1.DataSource = dv;

chartControl1.SeriesDataMember = "Month";

chartControl1.SeriesTemplate.ArgumentDataMember = "Month";

chartControl1.SeriesTemplate.ValueDataMembers.AddRange("Sales");

```

4. 添加数据系列

可以将多个数据系列添加到ChartControl中。每个数据系列可以代表不同的数据,并且可以使用不同的颜色、样式和标记。以下是添加数据系列的示例代码。

```csharp

// 添加一个新系列

Series series = new Series("Series1", ViewType.Bar);

chartControl1.Series.Add(series);

// 设置数据系列的属性

series.ArgumentScaleType = ScaleType.Qualitative;

series.ValueScaleType = ScaleType.Numerical;

series.ArgumentDataMember = "Month";

series.ValueDataMembers.AddRange("Sales");

series.Label.TextPattern = "{V}";

series.CrosshairLabelPattern = "{A}:{V}";

series.SummaryFunction = SummaryFunction.Sum;

series.ShowInLegend = true;

```

5. 添加图例

图例是可以显示图表中各个系列的信息,包括系列名称、颜色和标记。可以使用图例来了解每个系列的含义,并对数据进行比较。以下是添加图例的示例代码。

```csharp

// 添加图例

Legend legend = new Legend();

chartControl1.Legends.Add(legend);

// 设置图例属性

legend.Name = "Legend1";

legend.Docking = Docking.Bottom;

legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;

legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;

legend.Title.Text = "Sales by Month";

```

6. 添加标题和标签

ChartControl还支持添加标题和标签,以进一步说明图表的含义和数据。可以使用标题来解释整个图表的含义,而标签可以显示图表中特定部分的信息。以下是添加标题和标签的示例代码。

```csharp

// 添加标题

chartControl1.Titles.Clear();

chartControl1.Titles.Add(new ChartTitle());

chartControl1.Titles[0].Dock = ChartTitleDockStyle.Top;

chartControl1.Titles[0].Text = "Sales by Month";

// 添加标签

chartControl1.Series[0].Label.Visible = true;

chartControl1.Series[0].LegendTextPattern = "{A}: {V}";

```

7. 其他常用属性

除了以上介绍的属性外,ChartControl还有许多其他常用属性,例如图表的背景色、前景色、字体、边框等等。这些属性可以根据需要进行设置,以使图表更加美观和易于阅读。

8. 案例说明

以下是一些实际的案例说明,演示了ChartControl控件的一些应用场景。

(1)柱状图

以下是一个简单的柱状图,显示了每个月的销售额。

![](https://img-blog.csdnimg.cn/20211029104252754.png)

```csharp

// 设置图表类型

chartControl1.SeriesTemplate.ChangeView(ViewType.Bar);

// 绑定数据源

chartControl1.DataSource = dt;

chartControl1.SeriesDataMember = "Month";

chartControl1.SeriesTemplate.ArgumentDataMember = "Month";

chartControl1.SeriesTemplate.ValueDataMembers.AddRange("Sales");

// 添加数据系列

Series series = chartControl1.Series.Add("Series1", ViewType.Bar);

series.ArgumentScaleType = ScaleType.Qualitative;

series.ValueScaleType = ScaleType.Numerical;

series.ArgumentDataMember = "Month";

series.ValueDataMembers.AddRange("Sales");

series.Label.TextPattern = "{V}";

series.CrosshairLabelPattern = "{A}:{V}";

series.SummaryFunction = SummaryFunction.Sum;

series.ShowInLegend = true;

// 添加图例

Legend legend = new Legend();

chartControl1.Legends.Add(legend);

legend.Name = "Legend1";

legend.Docking = Docking.Bottom;

legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;

legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;

legend.Title.Text = "Sales by Month";

// 添加标题和标签

chartControl1.Titles.Clear();

chartControl1.Titles.Add(new ChartTitle());

chartControl1.Titles[0].Dock = ChartTitleDockStyle.Top;

chartControl1.Titles[0].Text = "Sales by Month";

chartControl1.Series[0].Label.Visible = true;

chartControl1.Series[0].LegendTextPattern = "{A}: {V}";

```

(2)折线图

以下是一个简单的折线图,显示了每个月的销售额。

![](https://img-blog.csdnimg.cn/20211029104345305.png)

```csharp

// 设置图表类型

chartControl1.SeriesTemplate.ChangeView(ViewType.Line);

// 绑定数据源

chartControl1.DataSource = dt;

chartControl1.SeriesDataMember = "Month";

chartControl1.SeriesTemplate.ArgumentDataMember = "Month";

chartControl1.SeriesTemplate.ValueDataMembers.AddRange("Sales");

// 添加数据系列

Series series = chartControl1.Series.Add("Series1", ViewType.Line);

series.ArgumentScaleType = ScaleType.Qualitative;

series.ValueScaleType = ScaleType.Numerical;

series.ArgumentDataMember = "Month";

series.ValueDataMembers.AddRange("Sales");

series.Label.TextPattern = "{V}";

series.CrosshairLabelPattern = "{A}:{V}";

series.SummaryFunction = SummaryFunction.Sum;

series.ShowInLegend = true;

// 添加图例

Legend legend = new Legend();

chartControl1.Legends.Add(legend);

legend.Name = "Legend1";

legend.Docking = Docking.Bottom;

legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;

legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;

legend.Title.Text = "Sales by Month";

// 添加标题和标签

chartControl1.Titles.Clear();

chartControl1.Titles.Add(new ChartTitle());

chartControl1.Titles[0].Dock = ChartTitleDockStyle.Top;

chartControl1.Titles[0].Text = "Sales by Month";

chartControl1.Series[0].Label.Visible = true;

chartControl1.Series[0].LegendTextPattern = "{A}: {V}";

```

(3)圆饼图

以下是一个简单的圆饼图,显示了每个月的销售额。

![](https://img-blog.csdnimg.cn/20211029104442219.png)

```csharp

// 设置图表类型

chartControl1.SeriesTemplate.ChangeView(ViewType.Pie);

// 绑定数据源

chartControl1.DataSource = dt;

chartControl1.SeriesDataMember = "Month";

chartControl1.SeriesTemplate.ArgumentDataMember = "Month";

chartControl1.SeriesTemplate.ValueDataMembers.AddRange("Sales");

// 添加数据系列

Series series = chartControl1.Series.Add("Series1", ViewType.Pie);

series.ArgumentScaleType = ScaleType.Qualitative;

series.ValueScaleType = ScaleType.Numerical;

series.ArgumentDataMember = "Month";

series.ValueDataMembers.AddRange("Sales");

series.Label.TextPattern = "{A}: {VP:P0}";

series.SummaryFunction = SummaryFunction.Sum;

series.ShowInLegend = true;

// 添加图例

Legend legend = new Legend();

chartControl1.Legends.Add(legend);

legend.Name = "Legend1";

legend.Docking = Docking.Bottom;

legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;

legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;

legend.Title.Text = "Sales by Month";

// 添加标题和标签

chartControl1.Titles.Clear();

chartControl1.Titles.Add(new ChartTitle());

chartControl1.Titles[0].Dock = ChartTitleDockStyle.Top;

chartControl1.Titles[0].Text = "Sales by Month";

chartControl1.Series[0].Label.Visible = true;

chartControl1.Series[0].LegendTextPattern = "{A}: {V}";

```

(4)面积图

以下是一个简单的面积图,显示了每个月的销售额。

![](https://img-blog.csdnimg.cn/20211029104550549.png)

```csharp

// 设置图表类型

chartControl1.SeriesTemplate.ChangeView(ViewType.Area);

// 绑定数据源

chartControl1.DataSource = dt;

chartControl1.SeriesDataMember = "Month";

chartControl1.SeriesTemplate.ArgumentDataMember = "Month";

chartControl1.SeriesTemplate.ValueDataMembers.AddRange("Sales");

// 添加数据系列

Series series = chartControl1.Series.Add("Series1", ViewType.Area);

series.ArgumentScaleType = ScaleType.Qualitative;

series.ValueScaleType = ScaleType.Numerical;

series.ArgumentDataMember = "Month";

series.ValueDataMembers.AddRange("Sales");

series.Label.TextPattern = "{V}";

series.CrosshairLabelPattern = "{A}:{V}";

series.SummaryFunction = SummaryFunction.Sum;

series.ShowInLegend = true;

// 添加图例

Legend legend = new Legend();

chartControl1.Legends.Add(legend);

legend.Name = "Legend1";

legend.Docking = Docking.Bottom;

legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;

legend.AlignmentVertical = LegendAlignmentVertical.BottomOutside;

legend.Title.Text = "Sales by Month";

// 添加标题和标签

chartControl1.Titles.Clear();

chartControl1.Titles.Add(new ChartTitle());

chartControl1.Titles[0].Dock = ChartTitleDockStyle.Top;

chartControl1.Titles[0].Text = "Sales by Month";

chartControl1.Series[0].Label.Visible = true;

chartControl1.Series[0].LegendTextPattern = "{A}: {V}";

```

总结

ChartControl是一个非常强大的图表控件,可以帮助我们快速、方便地实现各种类型的图表。我们可以使用它来展示各种数据,并通过不同的图表类型来比较、分析和展示数据。在本文中,我们介绍了ChartControl的基本用法,并提供了一些实际的案例说明。如果您需要使用图表来支持自己的开发项目,ChartControl可以是一个不错的选择。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(20) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部