Devexpress ChartControl 控件使用笔记
- 格式:docx
- 大小:18.05 KB
- 文档页数:1
dev chartcontrol用法-回复“dev chartcontrol用法”指的是在软件开发中使用ChartControl来绘制图表和数据可视化。
ChartControl是一种功能强大的控件,可以在应用程序中显示各种类型的图表,帮助用户更直观地理解和分析数据。
本文将逐步介绍dev chartcontrol的用法,帮助读者快速上手。
第一步:了解ChartControl的基本功能ChartControl提供了许多基本功能,包括绘制线性图表、柱状图、饼图、雷达图等等。
在开始使用ChartControl之前,首先需要了解每种图表类型的特点和用途。
比如,线性图表适合显示数据的趋势和变化,柱状图适合比较不同类别或时间段的数据,饼图适合显示数据的占比等等。
熟悉这些基本功能将有助于我们选择合适的图表类型来展示数据。
第二步:创建ChartControl使用ChartControl之前,我们需要在项目中引入相应的库文件,并在界面上配置ChartControl控件。
一般来说,ChartControl可以使用拖拽的方式添加到界面上,然后通过代码进行配置和数据的绑定。
在创建ChartControl时,我们也可以设置其外观和交互方式,例如修改图表的标题、坐标轴的标签和范围,调整图表的宽度和高度,以及启用或禁用鼠标交互等。
第三步:准备数据源在使用ChartControl之前,需要准备好要显示的数据源。
这可以是来自数据库、文件或者其他数据源的数据集。
我们需要将这些数据转换为ChartControl可以识别和展示的格式。
通常情况下,ChartControl接受的数据格式包括DataTable、DataView和BindingSource等,可以根据具体情况选择合适的数据格式。
如果需要实时更新图表数据,还可以使用DataBinding机制将图表控件与数据源关联起来。
第四步:绘制图表在准备好数据源后,我们可以开始使用ChartControl绘制图表了。
使用DevExpress的WebChartControl控件绘制图表(柱状图、折线图、饼图)WebChartControl是DevExpress控件群下的一个Web图表控件,它使用非常的方便,生成的图表也相当的漂亮。
先贴出几张WebChartControl生成的图表:Web页面代码WebChartControl.aspx:View Code1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebChartControl.aspx.cs" Inherits="DevDemo.WebChartControl" %>23<%@ Register Assembly="DevExpress.XtraCharts.v11.2.Web, Version=11.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"4Namespace="DevExpress.XtraCharts.Web" TagPrefix="dxchartsui" %>56<%@ Register assembly="DevExpress.XtraCharts.v11.2, Version=11.2.5.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" namespace="DevExpress.XtraCharts" tagprefix="cc1" %> 78<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">910<html xmlns="/1999/xhtml">11<head runat="server">12<title></title>13</head>14<body>15<form id="form1"runat="server">16<div>17<dxchartsui:WebChartControl ID="WebChartControl1"runat="server" Width="500px"Height="350px">18</dxchartsui:WebChartControl>1920<dxchartsui:WebChartControl ID="WebChartControl3"runat="server" Width="500px"Height="350px">21</dxchartsui:WebChartControl>22<dxchartsui:WebChartControl ID="WebChartControl2"runat="server" Width="500px"Height="350px">23</dxchartsui:WebChartControl>24<dxchartsui:WebChartControl ID="WebChartControl4"runat="server" Width="500px"Height="350px">25</dxchartsui:WebChartControl>26</div>27</form>28</body>29</html>Web页面后台代码WebChartControl.aspx.csView Code1using System;2using System.Collections.Generic;3using System.Linq;4using System.Web;5using System.Web.UI;6using System.Web.UI.WebControls;7using System.Data;8using DevExpress.XtraCharts;9using System.Drawing;1011namespace DevDemo12 {13public partial class WebChartControl : System.Web.UI.Page14{15protected void Page_Load(object sender, EventArgs e)17this.DrawBar();18this.DrawLine();19this.DrawPie();20this.DrawBarAndLine();21}2223///<summary>24///绘制柱状图25///</summary>26private void DrawBar()27{2829ChartServices.SetChartTitle(this.WebChartControl1, true, "2012年12月第1周收入情况", true, 2, StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", 12, FontStyle.Bold), Color.Red, 10); //如不需显示图表标题可不用调用本段代码,下同30ChartServices.DrawChart(this.WebChartControl1, "收益", ViewType.Bar, ServiceData.GetWeekMoneyAndCost(), "week", "money");31ChartServices.DrawChart(this.WebChartControl1, "成本", ViewType.Bar, ServiceData.GetWeekMoneyAndCost(), "week", "cost");32ChartServices.SetAxisX(this.WebChartControl1, true, StringAlignment.Center, "星期", Color.Red, true, new Font("宋体", 12, FontStyle.Bold)); //如不需显示X轴标题,可不调用该行代码,下同33ChartServices.SetAxisY(this.WebChartControl1, true, StringAlignment.Center, "金额", Color.Red, true, new Font("宋体", 12, FontStyle.Bold)); //如不需显示Y轴标题,可不调用该行代码,下同34}3536///<summary>37///绘制折线图38///</summary>39private void DrawLine()40{41ChartServices.SetChartTitle(this.WebChartControl3,true,"2012年12月第1周收入情况", true, 2, StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", 12, FontStyle.Bold), Color.Red, 10);42ChartServices.DrawChart(this.WebChartControl3, "收益", ViewType.Line, ServiceData.GetWeekMoneyAndCost(), "week", "money");43ChartServices.DrawChart(this.WebChartControl3, "成本", ViewType.Line, ServiceData.GetWeekMoneyAndCost(), "week", "cost");44ChartServices.SetAxisX(this.WebChartControl3, true, StringAlignment.Center, "星期", Color.Red, true, new Font("宋体", 12, FontStyle.Bold));45ChartServices.SetAxisY(this.WebChartControl3, true, StringAlignment.Center, "金额", Color.Red, true, new Font("宋体", 12, FontStyle.Bold));4748///<summary>49///柱状图和折线图在同一图表中50///</summary>51private void DrawBarAndLine()52{53ChartServices.SetChartTitle(this.WebChartControl2,true,"2012年12月第1周收入情况", true, 2, StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", 12, FontStyle.Bold), Color.Red, 10);54ChartServices.DrawChart(this.WebChartControl2, "收益", ViewType.Bar, ServiceData.GetWeekMoneyAndCost(), "week", "money");55ChartServices.DrawChart(this.WebChartControl2, "成本", ViewType.Bar, ServiceData.GetWeekMoneyAndCost(), "week", "cost");56ChartServices.SetAxisX(this.WebChartControl2, true, StringAlignment.Center, "星期", Color.Red, true, new Font("宋体", 12, FontStyle.Bold));57ChartServices.SetAxisY(this.WebChartControl2, true, StringAlignment.Center, "金额", Color.Red, true, new Font("宋体", 12, FontStyle.Bold));5859ChartServices.SetChartTitle(this.WebChartControl2,false,"2012年12月第1周收入情况", true, 2, StringAlignment.Center, ChartTitleDockStyle.Top, true, new Font("宋体", 12, FontStyle.Bold), Color.Red, 10);60ChartServices.DrawChart(this.WebChartControl2, "收益", ViewType.Line, ServiceData.GetWeekMoneyAndCost(), "week", "money");61ChartServices.DrawChart(this.WebChartControl2, "成本", ViewType.Line, ServiceData.GetWeekMoneyAndCost(), "week", "cost");62ChartServices.SetAxisX(this.WebChartControl2, true, StringAlignment.Center, "星期", Color.Red, true, new Font("宋体", 12, FontStyle.Bold));63ChartServices.SetAxisY(this.WebChartControl2, true, StringAlignment.Center, "金额", Color.Red, true, new Font("宋体", 12, FontStyle.Bold));64}6566///<summary>67///绘制饼图68///</summary>69private void DrawPie()70{71ChartServices.SetChartTitle(this.WebChartControl4,true,"2012年12月第1周收入情况", true, 2, StringAlignment.Center, ChartTitleDockStyle.Top,true,new Font("宋体", 12, FontStyle.Bold), Color.Red, 10);72ChartServices.DrawChart(this.WebChartControl4, ServiceData.GetWeekMoneyAndCost().Rows[0][0].ToString(), ViewType.Pie, ServiceData.GetWeekMoneyAndCost(), "week", "money");73}74}75 }数据提供类ServiceData.cs,主要作用为图表控件提供数据源View Code1using System;2using System.Collections.Generic;3using System.Linq;4using System.Web;5using System.Data;67namespace DevDemo8 {9public static class ServiceData10{11///<summary>12///获取一周收入和支出数据13///</summary>14///<returns>Datatable数据集合(可从数据库读取以datatable形式返回,此处为演示方便直接构造)</returns>15public static DataTable GetWeekMoneyAndCost()16{17DataTable dt = new DataTable();18dt.Columns.Add("week", typeof(string));19dt.Columns.Add("money", typeof(decimal));20dt.Columns.Add("cost", typeof(decimal));2122dt.Rows.Add("星期一", 1200,400);23dt.Rows.Add("星期二", 1800,750);24dt.Rows.Add("星期三", 890,320);25dt.Rows.Add("星期四", 1080,290);26dt.Rows.Add("星期五", 2800,1020);27dt.Rows.Add("星期六", 3200,1260);28dt.Rows.Add("星期日", 4500,2320);29return dt;30}31}32 }图表控件辅助类ChartServices.cs,控制生成图表View Code1using System;2using System.Collections.Generic;3using System.Linq;4using System.Web;5using System.Drawing;6using DevExpress.XtraCharts;7using System.Data;89namespace DevDemo10 {11public static class ChartServices12{13///<summary>14///绘制图形15///</summary>16///<param name="control">图表控件</param>17///<param name="seriesName">系列名</param>18///<param name="type">类型</param>19///<param name="dt">数据源</param>20///<param name="column1"></param>21///<param name="column2"></param>22public static void DrawChart(DevExpress.XtraCharts.Web.WebChartControl control, string seriesName, ViewType type, DataTable dt, string column1, string column2)23{24Series series = new Series(seriesName, type);25DataTable table = dt;26SeriesPoint point=null;27for (int i = 0; i < table.Rows.Count; i++)28{29point= new SeriesPoint(table.Rows[i][column1].ToString(), Convert.ToDouble(table.Rows[i][column2].ToString()));30series.Points.Add(point);31}32control.Series.Add(series);33//针对饼图的特殊处理34if(type==ViewType.Pie)35{36//设置显示方式(Argument:显示图例说明,ArgumentAndValues:显示图例内容和数据)bel.PointOptions.PointView = PointView.ArgumentAndValues; 38//设置数据显示形式(Percent:百分比,Currency:货币类型,数据前添加¥,Scientific:科学计数法)bel.PointOptions.V alueNumericOptions.Format = NumericFormat.Percent;40//数据是否保留小数(0:不保留小数位,1保留一位小数,2保留两位小数)bel.PointOptions.ValueNumericOptions.Precision = 0;4243//数据以百分比显示时只能是Default和None44((PieSeriesLabel)bel).ResolveOverlappingMode =ResolveOverlappingMode.Default;45}46}4748///<summary>49///设置图表标题50///</summary>51///<param name="control">图表控件</param>52//////<param name="isVisible">标题是否可见</param>53///<param name="text">标题文本</param>54///<param name="isWordWrop">是否换行</param>55///<param name="maxLineCount">最大允许行数</param>56///<param name="alignment">对齐方式</param>57///<param name="dock">位置</param>58///<param name="isAntialiasing">是否允许设置外观</param>59///<param name="font">字体</param>60///<param name="textColor">文本颜色</param>61///<param name="indent">字体缩进值</param>62public static void SetChartTitle(DevExpress.XtraCharts.Web.WebChartControl control,bool isVisible,String text, bool isWordWrop, int maxLineCount, StringAlignment alignment, ChartTitleDockStyle dock, bool isAntialiasing, Font font, Color textColor, int indent) 63{64//设置标题65ChartTitle title = new ChartTitle();66title.Visible = isVisible;67//显示文本68title.Text = text;69//是否允许换行70title.WordWrap = isWordWrop;71//最大允许行数72title.MaxLineCount = maxLineCount;73//对齐方式74title.Alignment = alignment;75//位置76title.Dock = dock;77//是否允许设置外观78title.Antialiasing = isAntialiasing;79//字体80title.Font = font;81//字体颜色82title.TextColor = textColor;83//缩进值84title.Indent = indent;85control.Titles.Add(title);86}878889///<summary>90///为X轴添加标题91///</summary>92///<param name="control">图形控件</param>93///<param name="isVisible">标题是否可见</param>94///<param name="aligment">对齐方式</param>95///<param name="text">标题显示文本</param>96///<param name="color">标题字体颜色</param>97///<param name="isAntialiasing">是否允许设置外观</param>98///<param name="font">字体</param>99public static void SetAxisX(DevExpress.XtraCharts.Web.WebChartControl control, bool isVisible, StringAlignment aligment, string text, Color color, bool isAntialiasing, Font font) 100{101XYDiagram xydiagram = (XYDiagram)control.Diagram;102xydiagram.AxisX.Title.Visible = isVisible;103xydiagram.AxisX.Title.Alignment = aligment;104xydiagram.AxisX.Title.Text = text;105xydiagram.AxisX.Title.TextColor = color;106xydiagram.AxisX.Title.Antialiasing = isAntialiasing;107xydiagram.AxisX.Title.Font = font;108}109110///<summary>111///为X轴添加标题112///</summary>113///<param name="control">图形控件</param>114///<param name="isVisible">标题是否可见</param>115///<param name="aligment">对齐方式</param>116///<param name="text">标题显示文本</param>117///<param name="color">标题字体颜色</param>118///<param name="isAntialiasing">是否允许设置外观</param>119///<param name="font">字体</param>120public static void SetAxisY(DevExpress.XtraCharts.Web.WebChartControl control, bool isVisible, StringAlignment aligment, string text, Color color, bool isAntialiasing, Font font) 121{122XYDiagram xydiagram = (XYDiagram)control.Diagram;123xydiagram.AxisY.Title.Visible = isVisible;124xydiagram.AxisY.Title.Alignment = aligment;125xydiagram.AxisY.Title.Text = text;126xydiagram.AxisY.Title.TextColor = color;127xydiagram.AxisY.Title.Antialiasing = isAntialiasing;128xydiagram.AxisY.Title.Font = font;129}130}131 }以上为本人的一点小小研究,如有不足之处,望不吝赐教!可详见/huabao-wei/archive/2012/12/17/DevWebChartControl.html。
DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件。
本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一些小的经验总结。
总体来讲,使用DevExpress控件,可以获得更高效的界面设计以及更美观的效果。
本文主要通过给出相应的例子以及相关界面效果来说明问题,希望大家能够从中获得好的知识和思路。
1、应用Office2007和Office2010的界面主题开始使用DevExpress的时候,发现程序界面效果好像没有出现Office的样式,只是有几种可怜的内置效果。
经过查找发现需要在入口函数里面添加几行代码,如下所示。
erSkins.OfficeSkins.Register();erSkins.BonusSkins.Register();DevExpress.Skins.SkinManager.EnableFormSkins();指定界面主题效果,可以通过代码设置,指定主题的名称即可。
UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");或者在界面中添加一个控件 DefaultLookAndFeel,设置其对应的界面效果即可实现整个设计时刻和运行时刻的界面效果,如下图所示。
2、Properties属性DevExpress很多控件的一般属性,会放置在该属性下面,如ComboBox下拉列表的属性操作如下private void InitDictItem(){this.txtManufacture.Properties.Items.Clear();this.txtManufacture.Properties.Items.AddRange(DictItemUtil.GetDi ctByDictType("供货商"));}这是一个很丰富属性的归类,很多常用的属性基本上都囊括在这里了,如果你是从传统界面转换过来DevExperss开发,找不着相关的属性,尽管来这里看看。
devexpress chartcontrol 用法如何使用DevExpress ChartControl?一、简介DevExpress ChartControl是一个功能强大、灵活且易于使用的数据可视化控件,用于创建各种类型的图表,包括线图、柱状图、饼图、雷达图等。
它提供了丰富的图表样式和自定义选项,以满足各种应用程序的需求。
在本篇文章中,我们将一步一步地介绍如何使用DevExpress ChartControl。
二、安装和配置DevExpress ChartControl1. 下载DevExpress首先,我们需要从DevExpress官方网站下载并安装DevExpress。
在官方网站上,您可以找到适用于不同开发环境的DevExpress套件。
选择您正在使用的开发环境,并下载适合您的版本。
2. 添加DevExpress控件在安装DevExpress之后,打开您的开发环境(例如Visual Studio),创建一个新的项目或打开现有的项目。
然后,右键单击工具箱中的一个空白区域,选择“选择项”或“添加”选项。
在选择项对话框中,找到DevExpress组件,并选中“ChartControl”控件。
点击确定按钮,将DevExpress ChartControl添加到工具箱中。
3. 配置DevExpress控件接下来,将DevExpress ChartControl拖放到您的窗体或用户控件中。
然后,选择控件并在属性窗口中进行配置。
您可以设置控件的样式、布局、数据源等属性。
例如,您可以选择图表的风格(如3D或2D),调整图表的尺寸和位置,以及绑定数据源以显示图表数据。
三、创建基本图表1. 添加数据源要创建一个基本图表,首先需要添加一个数据源。
您可以使用任何数据源,例如DataSet、DataTable或自定义集合。
假设我们有一个包含销售数据的DataTable。
为了将数据绑定到图表,您需要设置图表的DataSource属性并指定要用于显示数据的数据源和数据字段。
DevExpress控件使⽤⼿册GridView1、控制Cell中数据显⽰对齐属性Column.AppearanceCell.TextOptions:HAlignment:⽔平对齐VAlignment:垂直对齐2、控制Cell中数据折叠显⽰属性Column.AppearanceCell.TextOptions.WordWrap3、控制奇数和偶数⾏显⽰颜⾊属性Gridview.OptionViewEnableAppearanceEvenRowEnableAppearanceOddRow4、显⽰过滤框OptionView.ShowAutoFilterRow = True5、获取选中的数据int[] iRows = myGridView.GetSelectedRows();for (int i = 0; i < iRows.Length; i++){DataRow dr = (DataRow) myGridView.GetDataRow(iRows[i]);}6、定位指定的记录1)按单元格的值定位记录myGridView.LocateByValue(0, dt.Columns["FieldName"], Object(value));2)按单元格的显⽰值定位记录(在GridView上编辑数据后,显⽰值(DispalyText)不同于实际值(Value))myGridView.LocateByDisplayText(0,dt.Columns["FieldName"],value);7、禁⽤主细表模式显⽰数据(当你绑定的对象内含集合类成员变量时,默认以主细表模式显⽰在GridView中)myGridView.OptionsView.ShowChildrenInGroupPanel =false;myGridView.OptionsDetail.EnableMasterViewMode = false;SplitContainerControl1.切换Panel的Dock为Fill属性FixedPanelCheckTreeList1.选中节点以不同颜⾊标⽰Appearance.FocusedCelLookUpEdit1.实现主细表显⽰和编辑主表:tblMain,绑定到MyGridControl上细表:tblDetail,绑定到MyLookUpEdit上假设:两个表的数据已经获取,下⾯重点关注如何进⾏数据绑定BindingSourse bsMain= new BindingSource();bsMain.DataSource = tblMain;MyGridControl.DataSource = myBind;MyLookUpEdit.Properties.DataSource = tblDetail;//将MyLookUpEdit绑定到tblMain,以⽀持数据显⽰MyLookUpEdit.DataBindings.Add("EditValue", bsMain, tblMain.EditColumn.ColumnName);//EditColumnColumn为要显⽰的主表的某⼀列,它对应与细表的ValueColumn//将MyLookUpEdit绑定到tblDetail,以⽀持数据编辑MyLookUpEdit.Properties.DisplayMember= tblDetail.DisplayColumn.ColumnaName;//**DisplayColumn为要显⽰的细表的某⼀列MyLookUpEdit.Properties.ValueMember= tblDetail.ValueColumn.ColumnaName;//**ValueColumn为与主表EditColumn对应的细表的某⼀列TextEdit1、控制只能录⼊数值myTextEdit.Properties.Mask.MaskType= Numeric;2、控制只能录⼊整数myTextEdit.Properties.Mask.MaskType= Numeric;myTextEdit.Properties.Mask.EditMast= d;。
DevExpress使⽤⽅法GridControl总结1.隐藏最上⾯的GroupPanelgridView1.OptionsView.ShowGroupPanel=false;2.得到当前选定记录某字段的值sValue=Table.Rows[gridView1.FocusedRowHandle][FieldName].ToString();3.数据只读gridView1.OptionsBehavior.Editable=false;4.不显⽰MasterDetailViewgridView1.OptionsDetail.EnableMasterViewMode=false;5.修改最上⾯的GroupPanel内容gridView1.GroupPanelText="柳⽣飘絮";6.数据绑定:FieldName --数据库的字段名称7.读写拷贝权限设置ColumnView.EditableThis property returns a value of the option不可写ColumnViewOptionsBehavior.EditableGets or sets whether end users are allowed to invoke cell editors可读可写OptionsColumn.AllowEditGets or sets whether end users are allowed to invoke editors for the column's cells.可读可写只有ColumnViewOptionsBehavior.Editable = True设置OptionsColumn.AllowEdit才有意义OptionsColumn.ReadOnlyGets or sets whether end-users are prevented from editing the column's cell values.可读可写If the ReadOnly property is set to true, the cell values of columns cannot be modified by end-users. In this case cell editors can be invoked but end users can only select and copy an editor's content. This option is not in effect if the column's or the view's option is disabled.Cell values can still be modified in code using the method regardless of the ReadOnly property's setting.只读不可拷贝:ColumnViewOptionsBehavior.Editable = False只读可拷贝:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = True可编辑:ColumnViewOptionsBehavior.Editable = TrueOptionsColumn.AllowEdit = TrueOptionsColumn.ReadOnly = False=============================================================⼀、如何解决单击记录整⾏选中的问题View->OptionsBehavior->EditorShowMode 设置为:Click⼆、如何新增⼀条记录(1)、gridView.AddNewRow()(2)、实现gridView_InitNewRow事件三、如何解决GridControl记录能获取⽽没有显⽰出来的问题gridView.populateColumns();四、如何让⾏只能选择⽽不能编辑(或编辑某⼀单元格)(1)、View->OptionsBehavior->EditorShowMode 设置为:Click(2)、View->OptionsBehavior->Editable 设置为:false五、如何禁⽤GridControl中单击列弹出右键菜单设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false六、如何隐藏GridControl的GroupPanel表头设置Run Design->OptionsView->ShowGroupPanel 设置为:false七、如何禁⽤GridControl中列头的过滤器过滤器如下图所⽰:设置 Run Design->OptionsCustomization->AllowFilter 设置为:false⼋、如何在查询得到0条记录时显⽰⾃定义的字符提⽰/显⽰如图所⽰:⽅法如下://When no Records Are Being Displayed private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e) { //⽅法⼀(此⽅法为GridView设置了数据源绑定时,可⽤) ColumnView columnView = sender as ColumnView; BindingSource bindingSource = this.gridView1.DataSource as BindingSource;if(bindingSource.Count == 0) { string str = "没有查询到你所想要的数据!"; Font f = new Font("宋体", 10, FontStyle.Bold); Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5); e.Graphics.DrawString(str, f, Brushes.Black, r); } //⽅法⼆(此⽅法为GridView没有设置数据源绑定时,使⽤,⼀般使⽤此种⽅法) if (this._flag) { if (this.gridView1.RowCount == 0) { string str = "没有查询到你所想要的数据!"; Font f = new Font("宋体", 10, FontStyle.Bold); Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5); e.Graphics.DrawString(str, f, Brushes.Black, r); } } }九、如何显⽰⽔平滚动条?设置this.gridView.OptionsView.ColumnAutoWidth = false;⼗、如何定位到第⼀条数据/记录?设置 this.gridView.MoveFirst()⼗⼀、如何定位到下⼀条数据/记录?设置 this.gridView.MoveNext()⼗⼆、如何定位到最后⼀条数据/记录?设置 this.gridView.MoveLast()⼗三、设置成⼀次选择⼀⾏,并且不能被编辑this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus; this.gridView1.OptionsBehavior.Editable = false;this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;⼗四、如何显⽰⾏号?this.gridView1.IndicatorWidth = 40; //显⽰⾏的序号 private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e) { if(.IsRowIndicator && e.RowHandle>=0) { .DisplayText = (e.RowHandle + 1).ToString(); } }⼗五、如何让各列头禁⽌移动?设置gridView1.OptionsCustomization.AllowColumnMoving = false;⼗六、如何让各列头禁⽌排序?设置gridView1.OptionsCustomization.AllowSort = false;⼗七、如何禁⽌各列头改变列宽?设置gridView1.OptionsCustomization.AllowColumnResizing = false;=======================================================================================devexpress表格控件gridcontrol设置隔⾏变⾊、焦点⾏颜⾊、设置(改变)显⽰值、固定列不移动(附源码)介绍⼀些常⽤的gridcontrol设置。
DevExpress控件使用之多重坐标图形的绘制有时候,基于对一些年份、月份的统计,需要集成多个数值指标进行分析,因此就需要把多种数据放到一个图形里面展现,也成为多重坐标轴,多重坐标轴可以是多个X轴,也可以是Y轴,它们的处理方式类似。
本文通过一个例子对这个方面进行介绍,希望给大家有一个很好的参考。
首先我们先来看一个图形例子,我们可以从里面图形的右边看到有多个Y轴,一个Y轴代表一个指标分析,X轴为月份。
上图是采用了DevExpress的ChartControl图表控件来实现的,这个控件提供了SecondaryAxisY对象来处理多重坐标的问题。
1.准备数据并绑定首先,,拖动ChartControl控件到Form界面上,然后设计好布局。
下面为了测试准备了几项数据,绑定在下面列表GridControl对象里面,然后把数据绑定到图表对象里面,如下代码。
具体处理的时候,我们从数据库获取对应指标的数据即可实现动态绑定。
/// <summary>/// 准备数据内容/// </summary>/// <returns></returns>privateDataTableCreateData(){DataTabledt = new DataTable();dt.Columns.Add(new DataColumn("类型"));dt.Columns.Add(new DataColumn("2005-1月", typeof(decimal)));dt.Columns.Add(new DataColumn("2005-2月", typeof(decimal)));dt.Columns.Add(new DataColumn("2005-3月", typeof(decimal)));dt.Columns.Add(new DataColumn("2005-4月", typeof(decimal)));dt.Columns.Add(new DataColumn("2005-5月", typeof(decimal)));dt.Columns.Add(new DataColumn("2005-6月", typeof(decimal)));dt.Rows.Add(new object[] { "员工人数", 437, 437, 414,397, 387, 378 });dt.Rows.Add(new object[] { "人均月薪", 3964, 3961, 3979, 3974, 3967, 3972 });dt.Rows.Add(new object[] { "成本TEU", 3104, 1339, 3595.8, 3154.5, 2499.8, 3026 });dt.Rows.Add(new object[] { "人均生产率", 7.1, 3.06, 8.69,7.95, 6.46, 8.01 });dt.Rows.Add(new object[] { "占2005年3月人数比例", 1.06, 1.06, 1,0.96, 0.93, 0.91 });returndt;}private void Form1_Load(object sender, EventArgs e){DataTabledt = CreateData();this.gridControl1.DataSource = dt;CreateChart(dt);}2、创建图表图形private void CreateChart(DataTabledt){#region Series//创建几个图形的对象Series series1 = CreateSeries("员工人数", ViewType.Line, dt, 0);Series series2 = CreateSeries("人均月薪", ViewType.Line, dt, 1);Series series3 = CreateSeries("成本TEU", ViewType.Line, dt, 2);Series series4 = CreateSeries("人均生产率", ViewType.Line, dt, 3);Series series5 = CreateSeries("占2005年3月人数比例",ViewType.Line, dt, 4);#endregionList<Series> list = new List<Series>() { series1, series2, series3, series4, series5 };chartControl1.Series.AddRange(list.ToArray());chartControl1.Legend.Visible = false;belsVisibility =efaultBoolean.True;for (int i = 0; i <list.Count; i++){list[i].View.Color = colorList[i];CreateAxisY(list[i]);}}为了简化代码,并方便处理,上面代码中提取了两个函数进行了独立处理。
DevExpress控件使用使用技巧小结零零散散的先总结一下吧1.TextEditor(barEditItem)取文本string editValue = barEditItem1.EditValue.ToString(); //错误,返回nullstring editValue =((DevExpress.XtraEditors.TextEdit)barEditItem).EditValue.ToString(); //正确,返回文本框内容boBoxEdit(barEditItem)添加Itemstring item = "comboboxItem1";((DevExpress.XtraEditors.Repository.RepositoryItemComboBox)this.barEd itItem.Edit).Items.Add(item);boBoxEdit(barEditItem)取文本string itemValue = this.barEditItem.EditValue.ToString();4.Ribbon控件//添加PageDevExpress.XtraBars.Ribbon.RibbonPage ribbonPage = new RibbonPage(); ribbonControl.Pages.Add(ribbonPage);//添加GroupDevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup = new RibbonPageGroup();ribbonPage.Groups.Add(ribbonPageGroup);//添加ButtonDevExpress.XtraBars.BarButtonItem barButtonItem = new BarButtonItem(); ribbonPageGroup.ItemLinks.Add(barButtonItem);//添加barSubItemDevExpress.XtraBars.BarSubItem barSubItem = new BarSubItem(); ribbonPageGroup.ItemLinks.Add(barSubItem);//barSubItem下添加ButtonbarSubItem.AddItem(barButtonItem);//奇怪的删除Page问题while (this.ribbonControl.Pages.Count > 0){ribbonControl.Pages.Remove(ribbonControl.Pages[0]); //调试正常,运行报异常}while (this.ribbonControl.Pages.Count > 0){ribbonControl.SelectedPage = ribbonControl.Pages[0];ribbonControl.Pages.Remove(ribbonControl.SelectedPage); //运行正常}//禁止F10键TipseF10KeyForMenu = false;//DX按钮ApplicationIcon属性改变图标右键 Add ApplicationMenu 添加evExpress.XtraBars.Ribbon.ApplicationMenu5.HitInfo//在Tab页上点击右键的事件响应void xtraTabbedMdiManager_Event(object sender, MouseEventArgs e) {if (e.Button == MouseButtons.Right & ActiveMdiChild != null){DevExpress.XtraTab.ViewInfo.BaseTabHitInfo hInfo = xtraTabbedMdiManager.CalcHitInfo(e.Location);//右键点击位置:在Page上且不在关闭按钮内if (hInfo.IsValid & hInfo.Page != null&& !hInfo.InPageCloseButton){this.popupMenu.ShowPopup(Control.MousePosition);//在鼠标位置弹出,而不是e.Location}}}//在ribbon上点击右键的事件响应private void ribbonControl1_ShowCustomizationMenu(object sender, RibbonCustomizationMenuEventArgs e){//禁掉原系统右键菜单e.ShowCustomizationMenu = false;//右键位置:在barButtonItem上if (e.HitInfo != null& e.HitInfo.InItem& e.HitInfo.Item.Item is BarButtonItem){this.popupMenu.ShowPopup(Control.MousePosition);}//右键位置:在barSubItem中的barButtonItem上else if (e.Link != null& e.Link.Item != null& e.Link.Item is BarButtonItem){this.popupMenu.ShowPopup(Control.MousePosition);}}6.皮肤//添加皮肤程序集后注册皮肤erSkins.OfficeSkins.Register();erSkins.BonusSkins.Register();//设置皮肤erLookAndFeel.Default.SetSkinStyle("Liquid Sky"); //若皮肤名称错误则按系统默认设置(第一个皮肤)//GalleryFilterMenuPopup事件设置弹出筛选菜单的“All Groups”为中文private void rgbiSkins_GalleryFilterMenuPopup(object sender, GalleryFilterMenuEventArgs e){e.FilterMenu.ItemLinks[n].Caption = "所有皮肤"; //n=分组数+1 }//GalleryInitDropDownGallery事件设置弹出皮肤列表的表头“ALL Groups”为中文private void rgbiSkins_GalleryInitDropDownGallery(object sender, InplaceGalleryEventArgs e){e.PopupGallery.FilterCaption = "所有皮肤";}7.dockManager将视图的状态信息保存到xml文件dockManager1.SaveLayoutToXml("..\\UserConfig\\ViewInfo.xml");导出xml中保存的状态信息dockManager1.RestoreLayoutFromXml("..\\UserConfig\\ViewInfo.xml");8.b arManager设置bar的字体与系统字体barAndDockingController1.AppearancesBar.ItemsFont = newFont(this.Font.FontFamily, currentFontSize);9.设置系统字体DevExpress.Utils.AppearanceObject.DefaultFont = newFont(this.Font.FontFamily, currentFontSize);10.treeView为tree节点加右键菜单并选中该节点private void treeList1_MouseDown(object sender, MouseEventArgs e){if (e.Button == MouseButtons.Right){DevExpress.XtraTreeList.TreeListHitInfo hi =treeList1.CalcHitInfo(e.Location);if (hi.Node != null & hi.Node.ImageIndex == 5) //叶子节点的ImageIndex == 5{TreeListNode node =treeList1.FindNodeByID(hi.Node.Id);treeList1.FocusedNode = node;this.popupMenu1.ShowPopup(MousePosition); }}}。
DevExpress用法总结大全使用DevExpress控件来做项目开发已经有很长一段时间了,在摸索开发到客户苛刻要求的过程中,其中碰到过很多问题需要解决的,随着一个个问题的解决,也留下很多对DevExpress控件的使用经验及教训,综合设计到的多个项目的问题,对这些开发常用的要点进行总结,方便别人也方便自己。
提供这些解决方法,一个可以快速应用到项目中,二个也可以作为对界面开发的更高要求对待自己的项目,使得自己的东西更加完美,更加受欢迎。
1、 GridControl控件的数据显示的样式控制DevExpress控件开发常用要点总结如上两图所示,我们有时候需要控制列表访问过的颜色变化,或者是时间显示格式等内容,这个时候设置GridView的RowCellStyle即可实现,如下所示。
this.gridView1.RowCellStyle += new DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(gridView1_RowCellStyle);void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e){if (e.Column.FieldName == "PublishType"){if (e.CellValue != null && e.CellValue.ToString() == "中介"){e.Appearance.BackColor = Color.DeepSkyBlue;e.Appearance.BackColor2 = Color.LightCyan;}}if (e.Column.FieldName == "PublishTime"){e.Column.DisplayFormat.FormatString = "yyyy-MM-dd HH:mm:ss";}if (e.Column.FieldName == "Title"){string id = this.winGridViewPager1.gridView1.GetRowCellDisplayText(e.RowHandle, "Id");if (historyDict.ContainsKey(id)){e.Appearance.BackColor = Color.DeepSkyBlue;e.Appearance.BackColor2 = Color.LightCyan;}}}2、在LayoutControl布局中固定控件宽度DevExpress控件开发常用要点总结固定宽度后的真实效果。
DevexpressChartControl柱状图简单例⼦ //using DevExpress.XtraEditors;//using DevExpress.XtraCharts;// Create an empty chart.ChartControl sideBySideBarChart = new ChartControl();// Create the first side-by-side bar series and add points to it.Series series1 = new Series("Side-by-Side Bar Series 1", ViewType.Bar);series1.Points.Add(new SeriesPoint("A", 10));series1.Points.Add(new SeriesPoint("B", 12));series1.Points.Add(new SeriesPoint("C", 14));series1.Points.Add(new SeriesPoint("D", 17));// Create the second side-by-side bar series and add points to it.Series series2 = new Series("Side-by-Side Bar Series 2", ViewType.Bar);series2.Points.Add(new SeriesPoint("A", 15));series2.Points.Add(new SeriesPoint("B", 18));series2.Points.Add(new SeriesPoint("C", 25));series2.Points.Add(new SeriesPoint("D", 33));// Add the series to the chart.sideBySideBarChart.Series.Add(series1);sideBySideBarChart.Series.Add(series2);// Hide the legend (if necessary).sideBySideBarChart.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;// Rotate the diagram (if necessary).//((XYDiagram)sideBySideBarChart.Diagram).Rotated = true;// Add a title to the chart (if necessary).ChartTitle chartTitle1 = new ChartTitle();chartTitle1.Text = "Side-by-Side Bar Chart";sideBySideBarChart.Titles.Add(chartTitle1);// Add the chart to the form.sideBySideBarChart.Dock = DockStyle.Fill; this.Controls.Add(sideBySideBarChart);。
DevExpress之ChartControl⽤法实例总结DevExpress中的ChartControl顾名思义就是数据基于图表展⽰,其关键在于Series上的处理。
本⽂实例展⽰了ChartControl的⽤法,具体内容如下:主要功能代码部分如下:using System;using System.Drawing;using DevExpress.XtraCharts;namespace DevExpressUtilHelpV3{public static class ChartToolV3{/// <summary>/// 创建Series/// </summary>/// <param name="chat">ChartControl</param>/// <param name="seriesName">Series名字『诸如:理论电量』</param>/// <param name="seriesType">seriesType『枚举』</param>/// <param name="dataSource">数据源</param>/// <param name="xBindName">ChartControl的X轴绑定</param>/// <param name="yBindName">ChartControl的Y轴绑定</param>public static void CreateSeries(this ChartControl chat, string seriesName, ViewType seriesType, object dataSource, string xBindName, string yBindName){CreateSeries(chat, seriesName, seriesType, dataSource, xBindName, yBindName, null);}/// <summary>/// 创建Series/// </summary>/// <param name="chat">ChartControl</param>/// <param name="seriesName">Series名字『诸如:理论电量』</param>/// <param name="seriesType">seriesType『枚举』</param>/// <param name="dataSource">数据源</param>/// <param name="xBindName">ChartControl的X轴绑定</param>/// <param name="yBindName">ChartControl的Y轴绑定</param>/// <param name="createSeriesRule">Series⾃定义『委托』</param>public static void CreateSeries(this ChartControl chat, string seriesName, ViewType seriesType, object dataSource, string xBindName, string yBindName, Action<Series> createSeriesRule) {if (chat == null)throw new ArgumentNullException("chat");if (string.IsNullOrEmpty(seriesName))throw new ArgumentNullException("seriesType");if (string.IsNullOrEmpty(xBindName))throw new ArgumentNullException("xBindName");if (string.IsNullOrEmpty(yBindName))throw new ArgumentNullException("yBindName");Series _series = new Series(seriesName, seriesType);_series.ArgumentScaleType = ScaleType.Qualitative;_series.ArgumentDataMember = xBindName;_series.ValueDataMembers[0] = yBindName;_series.DataSource = dataSource;if (createSeriesRule != null)createSeriesRule(_series);chat.Series.Add(_series);}}}代码使⽤⽰例如下:public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){DataTable _dt = CreateTestDB();chartControl1.CreateSeries("理论功率", ViewType.Spline, _dt, "time", "Power");chartControl1.CreateSeries("实际功率", ViewType.Spline, _dt, "time", "ActulPower");}/// <summary>/// 准备数据源/// </summary>/// <returns>DataTable</returns>private DataTable CreateTestDB(){DataTable _testData = new DataTable();_testData.Columns.Add(new DataColumn("time", typeof(string)));_testData.Columns.Add(new DataColumn("Power", typeof(decimal)));_testData.Columns.Add(new DataColumn("ActulPower", typeof(decimal)));Random _rm = new Random();for (int i = 0; i < 24; i++){DataRow _drNew = _testData.NewRow();_drNew["time"] = string.Format("{0}点", i);_drNew["Power"] = 250;_drNew["ActulPower"] = _rm.Next(220, 245);_testData.Rows.Add(_drNew);}return _testData;}上述代码运⾏效果如下图所⽰:。
DevExpress.XtraCharts使用心得using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using DevExpress.XtraCharts;namespace ChartControl{public partial class Form1 : Form{public Form1(){InitializeComponent();}private Dictionary<string, double> chartPieDataDic = new Dictionary<string, double>();private Dictionary<string, double> chartBarDataDic = new Dictionary<string, double>();private void Form1_Load(object sender, EventArgs e){comboBox1.SelectedIndex = 0;InitPieChartData();InitBarChartData();showPie();}private void showPie(){ChartTitle title = new ChartTitle();title.Text = "全省话务分析饼图-话务类型分布";chartControl1.Titles.Clear();chartControl1.Titles.Add(title);Series series1 = new Series("话务类型", ViewType.Pie);((PiePointOptions)series1.PointOptions).PointView = PointView.ArgumentAndValues;foreach (KeyValuePair<string, double> keyvalue in chartPieDataDic){series1.Points.Add(new SeriesPoint(keyvalue.Key, new double[] { keyvalue.Value }));}chartControl1.Series.Clear();chartControl1.Series.Add(series1);}private void InitPieChartData(){try{chartPieDataDic.Add("大连", 0.2);chartPieDataDic.Add("沈阳", 0.26);chartPieDataDic.Add("锦州", 0.15);chartPieDataDic.Add("盘锦", 0.15);chartPieDataDic.Add("本溪", 0.1);chartPieDataDic.Add("抚顺", 0.12);chartPieDataDic.Add("营口", 0.02);}catch { }}private void InitBarChartData(){try{chartBarDataDic.Add("2001", 0.05);chartBarDataDic.Add("2002", 0.02);chartBarDataDic.Add("2003", 0.08);chartBarDataDic.Add("2004", 0.15);chartBarDataDic.Add("2005", 0.1);chartBarDataDic.Add("2006", 0.3);chartBarDataDic.Add("2007", 0.2);chartBarDataDic.Add("2008", 0.1);}catch { }}private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){if (comboBox1.Text.IndexOf("饼图") != -1){showPie();}else if (comboBox1.Text.IndexOf("柱图") != -1){showBar();}else if (comboBox1.Text.IndexOf("线图") != -1){showLine();}else if (comboBox1.Text.IndexOf("点图") != -1){showPoint();}}private void showBar(){try{ChartTitle title = new ChartTitle();title.Text = "市网元容量增长率统计分析柱图";chartControl1.Titles.Clear();chartControl1.Titles.Add(title);Series series2 = new Series("大连", ViewType.Bar);Series series3 = new Series("沈阳", ViewType.Bar);Series series4 = new Series("本溪", ViewType.Bar);foreach (KeyValuePair<string, double> kvp in chartBarDataDic){series2.Points.Add(new SeriesPoint(kvp.Key, new double[] {kvp.Value}));series3.Points.Add(new SeriesPoint(kvp.Key, new double[] {kvp.Value + 0.08}));series4.Points.Add(new SeriesPoint(kvp.Key, new double[] {kvp.Value + 0.02}));}chartControl1.Series.Clear();chartControl1.Series.Add(series2);chartControl1.Series.Add(series3);chartControl1.Series.Add(series4);chartControl1.Legend.Visible = true; // 显示标签(旁边的标注哪个颜色代表哪个城市)}catch { }}private void showLine(){ChartTitle title = new ChartTitle();title.Text = "线图";chartControl1.Titles.Clear();chartControl1.Titles.Add(title);Series series1 = new Series("辽宁", ViewType.Line);series1.ArgumentScaleType = ScaleType.Numerical;series1.Points.Add(new SeriesPoint(1, new double[] { 10 }));series1.Points.Add(new SeriesPoint(2, new double[] { 12 }));series1.Points.Add(new SeriesPoint(3, new double[] { 14 }));series1.Points.Add(new SeriesPoint(4, new double[] { 17 }));series1.Points.Add(new SeriesPoint(5, new double[] { 21 }));series1.Points.Add(new SeriesPoint(6, new double[] { 26 }));series1.Points.Add(new SeriesPoint(7, new double[] { 29 }));series1.Points.Add(new SeriesPoint(8, new double[] { 30 }));((PointSeriesView)series1.View).PointMarkerOptions.Kind = MarkerKind.Triangle;Series series2 = new Series("山东", ViewType.Line);series2.ArgumentScaleType = ScaleType.Numerical; //这句话必须有,否则点画不出来.((LineSeriesView)series2.View).LineStyle.DashStyle = DashStyle.DashDotDot;series2.Points.Add(new SeriesPoint(1, new double[] { 4 }));series2.Points.Add(new SeriesPoint(2, new double[] { 14 }));series2.Points.Add(new SeriesPoint(3, new double[] { 17 }));series2.Points.Add(new SeriesPoint(4, new double[] { 22 }));series2.Points.Add(new SeriesPoint(5, new double[] { 20 }));series2.Points.Add(new SeriesPoint(6, new double[] { 15 }));series2.Points.Add(new SeriesPoint(7, new double[] { 18 }));series2.Points.Add(new SeriesPoint(8, new double[] { 11 }));((PointSeriesView)series2.View).PointMarkerOptions.Kind = MarkerKind.Cross;chartControl1.Series.Clear();chartControl1.Series.Add(series1);chartControl1.Series.Add(series2);chartControl1.Legend.Visible = true;}private void showPoint(){ChartTitle title = new ChartTitle();title.Text = "点图";chartControl1.Titles.Clear();chartControl1.Titles.Add(title);Series series1 = new Series("上线人数", ViewType.Point);series1.ArgumentScaleType = ScaleType.Numerical;series1.Points.Add(new SeriesPoint(1, new double[] { 20 }));series1.Points.Add(new SeriesPoint(2, new double[] { 12 }));series1.Points.Add(new SeriesPoint(3, new double[] { 11 }));series1.Points.Add(new SeriesPoint(4, new double[] { 17 }));series1.Points.Add(new SeriesPoint(5, new double[] { 21 }));series1.Points.Add(new SeriesPoint(6, new double[] { 21 }));series1.Points.Add(new SeriesPoint(7, new double[] { 29 }));series1.Points.Add(new SeriesPoint(8, new double[] { 30 }));((PointSeriesView)series1.View).PointMarkerOptions.Kind = MarkerKind.Triangle;Series series2 = new Series("下线人数", ViewType.Point);series2.ArgumentScaleType = ScaleType.Numerical; //这句话必须有,否则点画不出来.series2.Points.Add(new SeriesPoint(1, new double[] { 4 }));series2.Points.Add(new SeriesPoint(2, new double[] { 14 }));series2.Points.Add(new SeriesPoint(3, new double[] { 17 }));series2.Points.Add(new SeriesPoint(4, new double[] { 22 }));series2.Points.Add(new SeriesPoint(5, new double[] { 20 }));series2.Points.Add(new SeriesPoint(6, new double[] { 15 }));series2.Points.Add(new SeriesPoint(7, new double[] { 18 }));series2.Points.Add(new SeriesPoint(8, new double[] { 11 }));((PointSeriesView)series2.View).PointMarkerOptions.Kind = MarkerKind.Cross;chartControl1.Series.Clear();chartControl1.Series.Add(series1);chartControl1.Series.Add(series2);chartControl1.Legend.Visible = true;}}}。
DevExpress学习笔记(二)昨天研究了RibbonControl控件,搭建了一个空架子,今天再次研究下NavBarControl。
由于本人做Web研发出身,所以对于上菜单,左导航,右内容的界面组织形式较为熟悉,所以自然想到了NavBarControl。
在昨天那个框架的基础上继续。
设置NavBar从工具箱中拖一个NavBarControl到Form界面上,设置其Dock 属性为Left,PaintStyleName为SkinNav:Blue。
效果如下:右键点击navBarGroup1,可选择新增/删除Group,或者新增Item,这里我新建一个Group和一个Item。
如果想删除Item或者对某Group中的Item进行排序,就需要点击右上角的三角符号进入Designer了,具体的操作方法与RibbonControl大同小异,不再繁叙。
效果图如下:现在两个Group是堆积在一起的,如果隐藏这种抽屉效果,设置NavbarControl的NavgationPaneMaxVisibleGroups的值为0,可看到效果如下:设置Item一般我们希望Item左边有小图标或者在较少Item的情况下上面有大的图标,如果想要达到这种效果,先从工具箱中拖入两个ImageCollection控件,一个控件承担小图标的集合,另一个控件承担大图标的集合。
啰嗦一句,DX控件的图标集合中,小图标一般为16×16,大图标为32×32.设置完图标集合后,分别设置NavBarControl控件的属性SmallImages和LargeImages为相应的ImageCollection控件。
然后选中NavBarItem1,在其属性中设置SmallImageIndex的值,可看到Item前面有相应的图标出现,如下图所示:尝试设置Item的属性LargeImageIndex的值,则发现没有任何变化,这是为什么呢?原来在设置这个属性之前还需要设置此Item所在Group的属性GroupStyle的值为LargeImageText。
一、关于Dev ChartControlDev ChartControl是一款专业的图表控件,旨在为开发人员提供丰富多样的图表展示功能,帮助用户快速、方便地呈现各类数据。
该控件具有轻量、高性能、易操作等特点,广泛应用于各类软件开发项目中。
二、Dev ChartControl的使用场景1. 数据监控与展示Dev ChartControl适用于各种数据监控场景,可以帮助用户实时了解数据变化趋势,快速作出决策。
2. 业务报表制作开发人员可利用Dev ChartControl设计出美观、直观的业务报表,让数据更具说服力,更有利于业务分析和决策。
3. 全球信息站及移动端数据可视化Dev ChartControl支持网页和移动端的数据可视化展示,为用户提供了一种直观呈现数据的方式。
三、Dev ChartControl的基本功能1. 多种图表类型Dev ChartControl 支持折线图、柱状图、饼状图、雷达图等多种常见的图表类型,覆盖了大部分数据展示的需求。
2. 图表交互性用户可以通过鼠标悬停、点击、拖拽等操作与图表进行交互,更直观地感受数据的变化。
3. 自定义样式用户可根据需求自定义图表的样式,包括颜色、字体、标签等,使得图表更符合用户所在行业或公司的风格。
4. 数据导出Dev ChartControl支持数据导出为图片、PDF等格式,方便用户在不同场景下使用数据图表。
四、Dev ChartControl的使用方法1. 环境准备用户需要确保自己的开发环境中已经安装了Dev ChartControl所需的相关库和依赖。
2. 控件引入在项目中引入Dev ChartControl的相关库文件,并在页面中添加相应的标签或代码。
3. 数据绑定用户可以在后台代码中绑定数据源,并设置相关的图表展示属性。
4. 相关事件处理根据需求,用户可以对图表的各种交互事件进行处理,比如鼠标悬停、点击等。
5. 自定义样式根据需求,用户可以通过参数设置,自定义图表的样式,使其更符合项目需求。
devexpress chartcontrol 用法DevExpress ChartControl 是一款功能强大的图表控件,可以用于展示和分析数据。
本文将介绍 ChartControl 的使用方法和常见应用场景。
一、ChartControl 简介ChartControl 是 DevExpress 公司开发的一款用于显示图表的控件。
它内置了多种图表类型,如折线图、柱状图、饼图等,可以通过简单的配置实现复杂的数据可视化效果。
ChartControl 提供了丰富的功能和灵活的定制选项,适用于各种数据分析和展示的需求。
二、ChartControl 的基本使用ChartControl 的基本使用包括数据绑定、图表类型选择和图表样式调整。
1. 数据绑定:ChartControl 支持多种数据源的绑定方式,包括数据表、数据库、XML 文件等。
可以通过设置 ChartControl 的 DataSource 属性来指定数据源,同时指定 X 值和 Y 值字段,实现数据与图表的关联。
2. 图表类型选择:ChartControl 提供了多种预定义的图表类型,可以根据需求选择合适的图表类型。
可以通过 ChartControl 的 Series 属性进行设置,每个 Series 表示一个数据系列,可以设置对应的图表类型和数据源。
3. 图表样式调整:ChartControl 具有丰富的样式选项,可以对图表进行自定义的样式调整。
可以通过 ChartControl 的 Appearance 属性来设置整体的样式,也可以通过设置 Series 的 Appearance 属性来设置每个数据系列的样式。
以上是 ChartControl 的基本使用方法,通过简单的配置和调整,可以实现各种复杂的数据展示效果。
三、ChartControl 的高级特性除了基本的使用方法外,ChartControl 还提供了一些高级特性,可以进一步定制图表的显示效果和交互功能。
界面规范[V1.0]拟制人______________________审核人______________________批准人______________________[二零零七年二月二十六日]日期作者版本备注2007/04/05 范拥华 1.0.0Created by fanco Page 1 of 49 Created on 4/25/2022 3:17:00 AM目录1规范性 (4)2系统颜色、字体、图标 (4)2.1设计参考 (4)3FORM控件布局与间距 (5)3.1设计参考 (5)4对齐设置 (6)4.1设计参考 (6)5BARMANAGER控件 (6)5.1实现效果 (6)6菜单 (8)6.1设计参考 (8)6.2实现效果 (8)6.3操作步骤 (8)6.4实现代码 (9)7工具栏 (10)7.1设计参考 (10)7.2实现效果 (10)7.3操作步骤 (10)8STATUSBARS控件 (11)8.1设计参考 (11)8.2实现效果 (11)8.3操作步骤 (11)9控件 (11)9.1网格控件 (11)9.1.1GridControl (11)9.1.1.1GridControl描述 (11)9.1.1.2GridControl特殊属性 (17)9.1.2GridView (22)9.1.2.1实现效果 (23)9.1.2.2操作步骤 (23)9.1.2.3属性设置 (23)9.1.3CardView (23)9.1.3.1实现效果 (24)9.1.3.2操作步骤 (24)9.1.3.3CarView属性设置 (24)9.1.4BandedGridView (25)9.1.4.1实现效果 (25)9.1.4.2操作步骤 (25)9.1.4.3实现代码 (26)9.1.4.4属性设置 (26)9.1.4.5ColumnEdit列 (26)9.1.5AdvBandedGridView (27)9.1.5.1实现效果 (28)Created by fanco Page 2 of 49 Created on 4/25/2022 3:17:00 AM9.1.5.2操作步骤 (28)9.1.5.3实现代码 (28)9.1.5.4属性设置 (29)9.2X TRA L AYOUT控件 (29)9.2.1特性 (29)9.2.2实现效果 (29)9.2.3操作步骤 (29)9.3X TRA T AB控件 (30)9.3.1设计参考 (30)9.3.2效果及代码 (30)9.4P IVOT G RID控件 (30)9.4.1实现效果 (31)9.4.2操作步骤 (31)9.5X TRA T REE L IST控件 (32)9.5.1实现效果 (34)9.5.2操作步骤 (34)9.5.3实现代码 (36)9.5.4属性设置 (37)9.6L OOK U P E DIT控件 (37)9.6.1实现效果 (37)9.6.2操作步骤 (37)9.7G RID L OOK U P E DIT控件 (39)9.7.1设计参考 (39)9.7.2实现效果 (39)9.7.3操作步骤 (39)9.8G RID P RINT控件 (41)9.8.1实现效果 (42)9.9B UTTON控件 (44)9.9.1设计参考 (44)9.10C HECK B OX控件 (45)9.10.1设计参考 (45)9.11G ROUP B OX控件 (45)9.11.1设计参考 (45)9.12L ABEL控件 (45)9.12.1设计参考 (45)9.13LIST B OX控件 (45)9.13.1设计参考 (45)9.14L IST V IEW控件 (46)9.14.1设计参考 (46)10界面输入控制 (46)10.1设计参考 (46)11弹出子窗体 (46)11.1设计参考 (46)12消息框设置 (46)12.1设计参考 (46)13向导使用原则 (47)13.1设计参考 (47)Created by fanco Page 3 of 49 Created on 4/25/2022 3:17:00 AM14TAB键和快捷键设置 (47)14.1设计参考 (47)15系统响应时间 (48)15.1设计参考 (48)16登陆窗体与主界面 (48)16.1设计参考 (48)17系统帮助设置 (49)17.1设计参考 (49)18附录 (49)1规范性通常界面设计都按Windows界面的规范来设计,即包含“菜单条、工具栏、工具箱、状态栏、滚动条、右键快捷菜单”的标准格式,可以说:界面遵循规范化的程度越高,则易用性相应的就越好。
WinformDevexpressChart使⽤⼊门⼀、Chart(Winform)使⽤图表控件(chart)⾸先要理解图表区域(ChartArea)、XY轴(AxisX、AxisY)、数据点(Series)、标题(Title)、图例(Legend)这⼏个之间的层次关系。
图1:柱形图从图1可以中内容,可以对Chart控件的组成有了⼀个简单的了解。
1.图表区域(ChartArea)从图1中可以看出数据点、XY轴都是属于ChartArea的,这⾥是主要数据展⽰的区域。
2.XY轴(AxisX、AxisY)XY轴的作⽤不⽤多说,具体的设置可以参考Demo中的代码。
3.数据点(Series)圆饼图、散点图、柱形图等等都是由Series的属性设置的。
4.标题(Title)、图例(Legend)这个作⽤不多说了,主要是进⾏⼀些相关属性的设置。
上点代码:1///<summary>2///饼图3///</summary>4private void ChartPie()5 {6//ChartArea7 ChartArea chartArea = new ChartArea()8 {9 Name = "PieArea",10 BorderWidth = 0,11 BorderDashStyle = ChartDashStyle.NotSet,12 };13 chartBar.ChartAreas.Clear();14 chartBar.ChartAreas.Add(chartArea);15//Series16 Series seriesBookA = new Series()17 {18 ChartArea = "PieArea",19 Name = "书籍A销量",20 Color = Color.Red,21 Legend = "LegendBook",22 Tag = "BookASaleCount",23 ChartType = SeriesChartType.Pie,24 XAxisType = AxisType.Primary,25 XValueType = ChartValueType.DateTime,26 IsValueShownAsLabel = true,27 Label = "#VALY(#PERCENT{P0})",28 };29 chartBar.Series.Clear();30 chartBar.Series.Add(seriesBookA);31//Point32double[] value = { 580 };33 DataPoint dataPoint = new DataPoint()34 {35 Name = "书籍A销售量",36 Color = Color.Red,37 YValues = value,38 LegendText = "书籍A销售量:" + value[0],39 };40if (chartBar.Series.Count > 0)41 {42 chartBar.Series[0].Points.Clear();43 chartBar.Series[0].Points.Add(dataPoint);44 value = new double[] { 700 };45 chartBar.Series[0].Points.Add(new DataPoint()46 {47 Name = "书籍B销售量",48 Color = Color.Blue,49 YValues = value,50 LegendText = "书籍B销售量:" + value[0],51 });52 value = new double[] { 300 };53 chartBar.Series[0].Points.Add(new DataPoint()54 {55 Name = "书籍C销售量",56 Color = Color.Pink,57 YValues = value,58 LegendText = "书籍C销售量:" + value[0],59 });60 }61//Title62 Title mainTitle = new Title()63 {64 Name = "MainTitle",65 Text = "书籍销量",66 Font = new Font("微软雅⿊", 12, FontStyle.Regular, GraphicsUnit.Pixel),67 ForeColor = Color.Blue,68 Docking = Docking.Top,69 IsDockedInsideChartArea = true,70 };71 chartBar.Titles.Clear();72 chartBar.Titles.Add(mainTitle);73//Legend74 Legend legend = new Legend()75 {76 Name = "LegendBook",77 LegendStyle = LegendStyle.Table,78 Docking = Docking.Bottom,79 };80 chartBar.Legends.Clear();81 chartBar.Legends.Add(legend);82 }⼆、ChartControl(Devexpress)Dev的ChartControl⽤法和 Winform的类似,但是更为灵活三、问题及解决⽅法1.ChartControl(dev)饼图label重叠问题以下属性设置可解决此问题pieSeriesLabel1.Position = DevExpress.XtraCharts.PieSeriesLabelPosition.TwoColumns; pieSeriesLabel1.ResolveOverlappingMode = DevExpress.XtraCharts.ResolveOverlappingMode.Default;。