Devexpress ChartControl 控件使用笔记
dev chartcontrol用法 -回复

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控件绘制图表(柱状图、折线图、饼图)

使用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控件使用经验总结

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 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控件使用手册

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总结

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控件使用之多重坐标图形的绘制(ASPxWebChartControl)

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控件使用使用技巧小结

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); }}}。