DevExpress控件开发常用要点.docx
- 文档编号:8334243
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:12
- 大小:17.87KB
DevExpress控件开发常用要点.docx
《DevExpress控件开发常用要点.docx》由会员分享,可在线阅读,更多相关《DevExpress控件开发常用要点.docx(12页珍藏版)》请在冰豆网上搜索。
DevExpress控件开发常用要点
[ASP.net教程]DevExpress控件开发常用要点(项目总结版)
使用DevExpress控件来做项目开发已经有很长一段时
间了,在摸索开发到客户苛刻要求的过程中,其中碰到过很
多问题需要解决的,随着一个个问题的解决,也留下很多对
DevExpress控件的使用经验及教训,综合设计到的多个项目
的问题,对这些开发常用的要点进行总结,方便别人也方便
自己。
提供这些解决方法,一个可以快速应用到项目中,二
个也可以作为对界面开发的更高要求对待自己的项目,使得
自己的东西更加完美,更加受欢迎。
1、GridControl控件的数据显示的样式控制
如上两图所示,我们有时候需要控制列表访问过的颜色变
化,或者是时间显示格式等内容,这个时候设置GridView的
RowCellStyle即可实现,如下所示。
this.gridView1.RowCellStyle+=new
DevExpress.XtraGrid.Views.Grid.RowCellStyleEventHandler(g
ridView1_RowCellStyle);void
gridView1_RowCellStyle(objectsender,
DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgse)
{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-ddHH:
mm:
ss";}if
(e.Column.FieldName=="Title")
{stringid=
this.winGridViewPager1.gridView1.GetRowCellDisplayText(e.
RowHandle,"Id");if
(historyDict.ContainsKey(id))
{e.Appearance.BackColor=
Color.DeepSkyBlue;
e.Appearance.BackColor2=
Color.LightCyan;}}
}
2、在LayoutControl布局中固定控件宽度
固定宽度后的真实效果。
为了使得界面统一性及更好的控制性,我们一般使用
LayoutControl布局控件作为我们添加控件的布局容器,但是
这个控件默认是对其中的控件进行按窗口比例进行缩放的,
有些客户就不喜欢这些特点,因为他们的显示器可能是30寸的(夸张一点点,不过很多宽屏的),这样很多输入框就会被拉得很长,这样小小一个输入框,可能有很长的一段空
白的距离,那样可能真的不好看,如下图所示。
设置固定宽度,其实不是很麻烦,需要设置几个属性即可
1)设置控件的SizeConstraintsType为
DevExpress.XtraLayout.SizeConstraintsType.Custom;
2)设置控件的FillControlToClientArea为False
3)设置控件的ControlMaxSize的大小(必要时也可以设置
ControlMinSize),设置例子如下所示。
3、GridControl中的GridView内容打印
由于GridView的良好封装性,实现打印的代码很简单。
privatevoidmenu_Print_Click(objectsender,EventArgse)
{PrintableComponentLinklink=new
PrintableComponentLink(newPrintingSystem());
link.Component=this.gridControl1;
link.Landscape=true;link.PaperKind=
System.Drawing.Printing.PaperKind.A3;
link.CreateMarginalHeaderArea+=newCreateAreaEventHandler(Link_CreateMarginalHeaderArea);link.CreateDocument();
link.ShowPreview();}privatevoid
Link_CreateMarginalHeaderArea(objectsender,
CreateAreaEventArgse){stringtitle=
string.Format("年度大体检-({0}年度)",this.txtYear.Text);
PageInfoBrickbrick=e.Graph.DrawPageInfo(PageInfo.None,
title,Color.DarkBlue,newRectangleF(0,0,
100,21),BorderSide.None);brick.LineAlignment
=BrickAlignment.Center;brick.Alignment=
BrickAlignment.Center;brick.AutoWidth=true;
brick.Font=newSystem.Drawing.Font("宋体",11f,
FontStyle.Bold);}
4、设置GridView的行指示器(行头)显示行号
在我的分页控件以及Winform开发框架很多项目介绍里面,
很多都显示了行号,其实这个在DevExpress中的实现很简
单,如果需要,可以实现在自己的代码里面。
1)先实现
GridView
的
CustomDrawRowIndicator
事件,实现
代码如下所示。
privatevoid
advBandedGridView1_CustomDrawRowIndicator(objectsender,DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgse)
{e.Appearance.TextOptions.HAlignment=
DevExpress.Utils.HorzAlignment.Far;if
(e.Info.IsRowIndicator){if
(e.RowHandle>=0)
{e.Info.DisplayText=(e.RowHandle+
1).ToString();}elseif
(e.RowHandle<0&&e.RowHandle>-1000)
{e.Info.Appearance.BackColor=
System.Drawing.Color.AntiqueWhite;
e.Info.DisplayText="G"+
e.RowHandle.ToString();}}
}
2)然后设置
GridView
控件的
IndicatorWidth
为合适的宽度,
如
40左右则比较好。
这样设置后,就能顺利显示行号了,是不是很方便呢。
5、GridView表头多行显示(折行),表头及行内容居中操作
在一些自定义的列表中,我们为了合理显示表头的内容,可
能会要求表头显示的文字可以折行显示,然后还需要内容居
中显示,那么在DevExpress该如何操作呢,代码设置如下所
示。
//表头折行设置
this.gridView1.ColumnPanelRowHeight=40;
this.gridView1.OptionsView.AllowHtmlDrawHeaders=true;
this.gridView1.Appearance.HeaderPanel.TextOptions.WordWra
p=DevExpress.Utils.WordWrap.Wrap;
//表头及行内容居中显示
this.gridView1.Appearance.Row.TextOptions.HAlignment=
DevExpress.Utils.HorzAlignment.Center;
this.gridView1.Appearance.HeaderPanel.TextOptions.HAlignme
nt=DevExpress.Utils.HorzAlignment.Center;
然后设置表头的时候,设置内容使用\r\n来进行换行,如:
体重\r\n(kg)
下面是我分页控件里面的例子设置,供参考。
this.winGridViewPager1.AddColumnAlias("Weight","体重
\r\n(kg)");
this.winGridViewPager1.AddColumnAlias("Pulse","脉搏
\r\n(次)");
this.winGridViewPager1.AddColumnAlias("BloodSystolic","收
缩压");
this.winGridViewPager1.AddColumnAlias("BloodDiastolic","
舒张压");
this.winGridViewPager1.AddColumnAlias("SightLeft","视力
\r\n(左)");
this.winGridViewPager1.AddColumnAlias("SightRight","视力
\r\n(右)");
6、控件内容输入问题
在客户使用软件的时候,反馈说有一些数字输入框、日期
输入框,不支持键盘输入内容,经测试,确实是存在这个问
题,默认的数字、日期等输入,都要切换输入法才可以输入,不能默认就支持数字的输入,那么是否有办法解决呢,当然办法总是有的。
其实只需要设置ImeMode=Off即可解决问题,关于这个属性,大家可以参考下面的介绍。
(就开发而言,记得逢数字,日期的控件,必须设置ImeMode=Off,否则你的软件使用客户会骂娘。
ImeMode枚举:
指定一个值,该值是用来确定在选定了对象
时该对象的输入法编辑器(IME)的状态。
以下是微软的解
释:
成员名称
说明
Alpha
字母数字单字节字符(SBC)。
此设置仅对朝鲜语和日语IME
有效。
AlphaFull
字母数字双字节字符。
此设置仅对朝鲜语和日语IME有效。
CloseDisable
IME被禁用。
如果使用此设置,则用户无法从键盘打开IME,而且IME浮动窗口处于隐藏状态。
Hangul
朝鲜文SBC。
此设置仅对朝鲜语IME有效。
HangulFull
朝鲜文DBC。
此设置仅对朝鲜语IME有效。
Hiragana
平假名DBC。
此设置仅对日语IME有效。
Inherit
继承父控件的IME模式。
Katakana
片假名DBC。
此设置仅对日语IME有效。
KatakanaHalf
片假名SBC。
此设置仅对日语IME有效。
NoControl
无(默认)。
Off
IME已关闭。
此模式指示IME已关闭,这意味着该对象的
行为方式与英语输入模式相同。
此设置仅对日语、简体中
文和繁体中文IME有效。
On
IME已打开。
此值指示IME已打开,可以输入中文或日语特定的字符。
此设置仅对日语、简体中文和繁体中文IME有
效。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DevExpress 控件 开发 常用 要点