画k线用devexpress 常用控件什么控件

5333人阅读
DevExpress(9)
& & & private void Form1_Load(object sender, EventArgs e)
& & & & & & //汉化,需要引用DevExpress.Localization.v11.2.dll
& & & & & & DevExpress.XtraEditors.Controls.Localizer.Active = new DevExpress.LocalizationCHS.DevExpressXtraEditorsLocalizationCHS();
& & & & & & DevExpress.XtraGrid.Localization.GridLocalizer.Active = new DevExpress.LocalizationCHS.DevExpressXtraGridLocalizationCHS();
& & & & & & #region LoadData
& & & & & & DataTable tb2 = SQLcreate();
& & & & & & gridControl1.DataSource = tb2;
& & & & & & #endregion
& & & & & & gridViewDev.setDgv(gridView1);
& & & & &public DataTable SQLcreate()
& & & & & & string cmdtxt = &SELECT * FROM v_PersonEx&;
& & & & & & SqlConnection cn = new SqlConnection(&server=.;database=SMS;Uid=Pwd=&);
& & & & & & SqlDataAdapter dap = new SqlDataAdapter(cmdtxt, cn);
& & & & & & DataSet ds = new DataSet();
& & & & & & dap.Fill(ds, &table&);
& & & & & & return ds.Tables[0];
& & & & & &
& & & &public void setDgv(DevExpress.XtraGrid.Views.Grid.GridView gridView1)&
& & & & & & gridView1.OptionsView.ShowColumnHeaders = & & & //显示列标题
& & & & & & gridView1.OptionsView.ShowIndicator = & & & & &// 不显示行标题
& & & & & & gridView1.OptionsView.ShowGroupPanel = & & & & &// 显示分组panel
& & & & & & gridView1.OptionsCustomization.AllowGroup = & & //是否允许分组
& & & & & & gridView1.OptionsView.ShowGroupedColumns = & & //显示分组的列
& & & & & & gridView1.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.N & //是否显示过滤面板
& & & & & & gridView1.OptionsCustomization.AllowFilter = & & & & & & & & & & &//是否允许过滤
& & & & & & gridView1.OptionsCustomization.AllowColumnMoving = & & & & & & & &//是否允许移动列
& & & & & & gridView1.OptionsCustomization.AllowColumnResizing = & & & & & & &//是否允许调整列宽
& & & & & & gridView1.OptionsCustomization.AllowSort = & & & & & & & & & & & & &//是否允许排序
& & & & & & gridView1.OptionsSelection.EnableAppearanceFocusedCell = & & & & & //是否允许选中单元格
& & & & & & //允许选中行,不允许编辑
& & & & & & gridView1.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.C
& & & & & & gridView1.OptionsBehavior.Editable = & & & & & & & & & & & & & & & //是否允许用户编辑单元格
& & & & & & gridView1.OptionsView.EnableAppearanceEvenRow = & & & & & & & & & &//是否启用偶数行外观
& & & & & & gridView1.OptionsView.EnableAppearanceOddRow = & & & & & & & & & & //是否启用奇数行外观
& & & & & & gridView1.OptionsMenu.EnableColumnMenu = & & & & & & & & & & & & &//禁用列标题右键菜单
& & & & & & // gridView1.ClearSorting();//禁止排序
& & & & & & gridView1.PaintStyleName = &Flat&; & //设置外观样式
& & & & & & DevExpress.XtraGrid.Views.Grid.GridViewAppearances Appearance1 = new DevExpress.XtraGrid.Views.Grid.GridViewAppearances(gridView1);
& & & & & & //列标题颜色:System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(232)))), ((int)(((byte)(243)))));&
& & & & & & //奇数行
& & & & & & Appearance1.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(249)))), ((int)(((byte)(254)))));
& & & & & & Appearance1.EvenRow.Font = new System.Drawing.Font(&宋体&, 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
& & & & & & //偶数行
& & & & & & Appearance1.OddRow.BackColor = System.Drawing.Color.W
& & & & & & Appearance1.OddRow.Font = new System.Drawing.Font(&宋体&, 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
& & & & & & //选中行
& & & & & & Appearance1.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(211)))), ((int)(((byte)(128)))));
& & & & & & Appearance1.FocusedRow.ForeColor = System.Drawing.Color.B
& & & & & & //分组panel颜色
& & & & & & Appearance1.GroupPanel.BackColor = System.Drawing.Color.W
& & & & & & Appearance1.GroupPanel.BackColor2 = System.Drawing.Color.CornflowerB
& & & & & & //分组row颜色
& & & & & & Appearance1.GroupRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(232)))), ((int)(((byte)(243)))));&
& & & & & & Appearance1.GroupRow.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(232)))), ((int)(((byte)(243)))));
& & & & & & //空白区域颜色
& & & & & & Appearance1.Empty.BackColor = System.Drawing.Color.LightY
& & & & & & //列标题颜色
& & & & & & Appearance1.HeaderPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(210)))), ((int)(((byte)(229)))), ((int)(((byte)(249)))));
& & & & & & //奇数行
& & & & & & gridView1.Appearance.EvenRow.BackColor = Appearance1.EvenRow.BackC
& & & & & & gridView1.Appearance.EvenRow.Font = Appearance1.EvenRow.F
& & & & & & //偶数行
& & & & & & gridView1.Appearance.OddRow.BackColor = Appearance1.OddRow.BackC
& & & & & & gridView1.Appearance.OddRow.Font = Appearance1.OddRow.F
& & & & & & //选中行
& & & & & & gridView1.Appearance.FocusedRow.BackColor = Appearance1.FocusedRow.BackC & //选中的行
& & & & & & gridView1.Appearance.FocusedCell.BackColor = Appearance1.FocusedRow.BackC &//选中的单元格
& & & & & & gridView1.Appearance.FocusedRow.ForeColor = Appearance1.FocusedRow.ForeC & //字体颜色
& & & & & & //分组panel颜色
& & & & & & gridView1.Appearance.GroupPanel.BackColor = Appearance1.GroupPanel.BackC
& & & & & & gridView1.Appearance.GroupPanel.BackColor2 = Appearance1.GroupPanel.BackColor2;
& & & & & & //分组row颜色
& & & & & & gridView1.Appearance.GroupRow.BackColor = Appearance1.GroupRow.BackC
& & & & & & // &gridView1.Appearance.GroupRow.BackColor2 = Appearance1.GroupRow.BackColor2;
& & & & & & //空白区域颜色
& & & & & & gridView1.Appearance.Empty.BackColor = Appearance1.Empty.BackC
& & & & & & //列标题颜色
& & & & & & gridView1.Appearance.HeaderPanel.BackColor = Appearance1.HeaderPanel.BackC
& & & & & & //设置分组
& & & & & & gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, &分组1&); &//添加分组1,如果不是count,则名称必须与字段名对应
& & & & & & gridView1.GroupFormat = &{1} {2}&; &//默认&{0}: [#image]{1} {2}&; 字段名称:数据 计数=?
& & & & & & gridView1.Columns[&部门名称&].GroupIndex = 0; &//设置默认分组列
& & & & public void RestoreLayoutFromXml(DevExpress.XtraGrid.Views.Grid.GridView gridView1, string filePath)
& & & & & & gridView1.Appearance.RestoreLayoutFromXml(filePath); & &//加载样式
& & & & public void SaveLayoutToXml(DevExpress.XtraGrid.Views.Grid.GridView gridView1, string filePath)
& & & & & & gridView1.Appearance.SaveLayoutToXml(filePath); &//保存样式
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:579239次
积分:6640
积分:6640
排名:第3281名
原创:100篇
转载:136篇
评论:65条
(1)(8)(4)(2)(1)(13)(3)(4)(1)(1)(1)(3)(2)(5)(2)(2)(2)(10)(18)(11)(12)(15)(21)(18)(47)(6)(2)(21)本帖子已过去太久远了,不再提供回复功能。DevExpress控件使用小结 - Alfa - 博客园
1.TextEditor(barEditItem)取文本
string editValue = barEditItem1.EditValue.ToString();
//错误,返回null
string editValue = ((DevExpress.XtraEditors.TextEdit)barEditItem).EditValue.ToString();
//正确,返回文本框内容
2.ComboBoxEdit(barEditItem)添加Item
string item = "comboboxItem1";
((DevExpress.XtraEditors.Repository.RepositoryItemComboBox)this.barEditItem.Edit).Items.Add(item);
3.ComboBoxEdit(barEditItem)取文本
string itemValue = this.barEditItem.EditValue.ToString();
4.Ribbon控件
//添加Page
DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage = new RibbonPage();
ribbonControl.Pages.Add(ribbonPage);
//添加Group
DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup = new RibbonPageGroup();
ribbonPage.Groups.Add(ribbonPageGroup);
//添加Button
DevExpress.XtraBars.BarButtonItem barButtonItem = new BarButtonItem();
ribbonPageGroup.ItemLinks.Add(barButtonItem);
//添加barSubItem
DevExpress.XtraBars.BarSubItem barSubItem = new BarSubItem();
ribbonPageGroup.ItemLinks.Add(barSubItem);
//barSubItem下添加Button
barSubItem.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键Tips
ribbonControl.Manager.UseF10KeyForMenu = false;
ApplicationIcon属性改变图标
右键 Add ApplicationMenu 添加evExpress.XtraBars.Ribbon.ApplicationMenu
//在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);
//添加皮肤程序集后注册皮肤
DevExpress.UserSkins.OfficeSkins.Register();
DevExpress.UserSkins.BonusSkins.Register();
//设置皮肤
DevExpress.LookAndFeel.UserLookAndFeel.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.barManager
设置bar的字体与系统字体
barAndDockingController1.AppearancesBar.ItemsFont = new Font(this.Font.FontFamily, currentFontSize);
9.设置系统字体
DevExpress.Utils.AppearanceObject.DefaultFont = new Font(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 =
this.popupMenu1.ShowPopup(MousePosition);
  DexExpress的控件都有自己的样式,有不少的皮肤,然而怎样让一个System.Windows.Forms.Form窗口换肤了,有没有办法呢?用DexExpress是没有什么简单办法的,如果你要让窗体都换肤,只有用DevExpress.XtraEditors.XtraForm一条路了。用它后,还需在Pragram.cs中的Application.Run之前写上一句:DevExpress.Skins.SkinManager.EnableFormSkins();这样就差不多了。点此处见参考资料!
  二、样式设置有诀窍
  DexExpress的控件都有一个LookAndFeel属性,这个属性有两个属性:SkinName、Style,但是,我们如果只设置这两个,结果设置来设置去都没有反映,这是怎么回事,DexExpress说,去看Demo吧,日,看demo是大海捞针啊,那么多属性,谁晓得是哪儿出了问题。。怎么解决呢?LookAndFeel还有一个UseDefaultLookAndFeel属性,它默认值是true,请将它设为false即可。这是什么原因呢?为什么要这么做呢?DexExpress有一个组件:DefaultLookAndFeel,它的用法是拖到窗体上就是了,然后你修改它的LookAndFeel属性就是了,修改了它,那么此窗体上所有UseDefaultLookAndFeel为true的控件都用上了相同的样式。DevExpress的这个思想是蛮好的。这样做好处极大,再也不用一个控件一个控件地设置。有个别例外,就单独设置。
  另外,我还注意到DevExpress有几个类似的控件,如:
  DefaultToolTipControler、StyleController。它们的用意都集体管理界面风格。
  点此处进见参考资料!
  三、DexExpress的工具栏、菜单
  微软的的工具栏、菜单栏太难看了。让人烦闷。DexExpress也有。怎么使用呢?也有一些要注意的地方,这些问题demo都不会主动告诉我们的。
  从工具栏上拖个DevExpress.XtraBars.BarManage,拖上去后,它会自动生成三条DevExpress.XtraBars.Bar。DexExpress中,工具栏跟菜单是一个东西,都是建立在DevExpress.XtraBars.Bar基础之上,DevExpress.XtraBars.Bar是工具栏图标、菜单项的容器。它上面写得明白:add,让你点它,点它就可以创建菜单项、工具栏按钮等等。但是,我遇到了麻烦,相信大伙跟我一样,新建了一个以后,你输入了名称,按道理,你在其他地方点击一下,就相当于确认创建了,但是,我发现,无论你鼠标怎么动,vs失去了响应。后来才搞清楚,原来要回车一下。这种确认方式跟以前的习惯很不一样。我还以为vs死了。
//禁止barManage右键显示
this.barManager1.AllowCustomization = false;
this.barManager1.AllowShowToolbarsPopup = false;
//去除barManage右边小三角 自定制
this.barManager1.AllowQuickCustomization = false;
  四、选项卡式子窗口
  这个问题在前面已经讲了,但是还有一个问题,怎样实现双击选项卡时就关闭对应的窗口呢?就你Maxthon一样。我也去看了XtraTabbedMdiManager的事件,只有mouseUp、mouseDown。经过一篇文章的启发,得到了正确的解决方法(点此处看参考资料):
  第一步:在XtraTabbedMdiManager所在mdi父窗体中定义一个变量:
  private int clickTick = 0;
  第二步:注册事件xtraTabbedMdiManager1_MouseDown,事件处理代码如下:
/// &summary&
/// 双击标签关闭窗口
/// &/summary&
/// &param name="sender"&&/param&
/// &param name="e"&&/param&
private void xtraTabbedMdiManager1_MouseDown(object sender, MouseEventArgs e)
DevExpress.XtraTab.ViewInfo.BaseTabHitInfo hi = xtraTabbedMdiManager1.CalcHitInfo(new Point(e.X, e.Y));
if (hi.HitTest == DevExpress.XtraTab.ViewInfo.XtraTabHitTest.PageHeader)
if (clickTick == -1 || (System.Environment.TickCount - clickTick) & SystemInformation.DoubleClickTime)
clickTick = System.Environment.TickC
if ((System.Environment.TickCount - clickTick) & SystemInformation.DoubleClickTime)
//MessageBox.Show("DoubleClick: " + hi.Page.Text);
this.ActiveMdiChild.Close();
clickTick = -1;
  原理简单,是通过计算两个mouseDown之间的时间差来达到识别双击的目的。
  五、NotifyIcon的问题
  用了dev的菜单后,当然不能再去用ContextMenuStrip。如果用了ContextMenuStrip,那么软件里面有两种风格的菜单,多不雅观啊。所以只能用devexpress带的菜单了,dev提供三种菜单:
  DevExpress.XtraBars.Bar、ApplicationMenu、PopupMenu
  这三者当然就只能用PopuMenu了。怎么做托盘。DevExpress中并没有提供,只能微软的了。但是NotifyIcon只能绑定到ContextMenuStrip,受群里兄弟的启发,手工显示出来。问题解决,代码如下:
  popupMenu1.ShowPopup(Cursor.Position);
  这句代码写在NotifyIcon的mouseup事件中,不能用e.x,e.y的方法取坐标,它们都返回0。注意,popupMenu只有在BarManage存在的时候才能编辑,所以还是要先拖个BarManage。
修改ribbon图标
选择 ribbon 控件,修改 ribbon.ApplicationIcon
对话框的使用
对话框#region 对话框
/// &summary&
/// 确认对话框
/// &/summary&
/// &param name="strString"&提示内容&/param&
/// &returns&用户点击结果&/returns&
public DialogResult Confirm(string strString)
return DevExpress.XtraEditors.XtraMessageBox.Show(strString,"提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
/// &summary&
/// 确认对话框
/// &/summary&
/// &param name="strSting"&提示内容&/param&
public void ShowMessage(string strSting)
DevExpress.XtraEditors.XtraMessageBox.Show(strSting,"提示",MessageBoxButtons.rmation);
/// &summary&
/// 确认删除对话框
/// &/summary&
/// /// &returns&用户点击结果&/returns&
public DialogResult ConfirmDelete()
return DevExpress.XtraEditors.XtraMessageBox.Show("确定要删除吗?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
#endregion
使用用例:
if(this.Confirm("确定要删除吗?") == DialogResult.Cancel)DevExpress控件使用经验总结 - 伍华聪 - 博客园
随笔 - 513, 文章 - 20, 评论 - 7401, 引用 - 20
DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件。本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一些小的经验总结。总体来讲,使用DevExpress控件,可以获得更高效的界面设计以及更美观的效果。本文主要通过给出相应的例子以及相关界面效果来说明问题,希望大家能够从中获得好的知识和思路。&1、 应用Office2007和Office2010的界面主题开始使用DevExpress的时候,发现程序界面效果好像没有出现Office的样式,只是有几种可怜的内置效果。经过查找发现需要在入口函数里面添加几行代码,如下所示。&& & & & & &DevExpress.UserSkins.OfficeSkins.Register();&&&&&&&&&&&&DevExpress.UserSkins.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.GetDictByDictType("供货商"));& & & & }&&这是一个很丰富属性的归类,很多常用的属性基本上都囊括在这里了,如果你是从传统界面转换过来DevExperss开发,找不着相关的属性,尽管来这里看看。例如设置显示的可见性、可用性、&自定义显示格式等等。&3、GridView的相关操作获取选定行制定列的内容,用于删除记录的操作代码如下DevExpess的GridView控件,和传统WinFrom的GridView有很大的不同,如他没有GetSelectedRow的行集合操作,但可以通过GetSelectedRows获取制定的行序号,通过行序号来进行操作,如要获得指定行,制定列的内容,可以通过GetRowCellDisplayText&获取文本或者通过GetRowCellValue获取对应的值。如果需要获取当前选定行(焦点所在行)的制定列的数据,那么可以通过函数GetFocusedRowCellDisplayText("ID")来获取。& & & &&private&void&winGridViewPager1_OnDeleteSelected(object&sender,&EventArgs&e)&&&&&&&&{&&&&&&&&&&&&if&(MessageUtil.ShowYesNoAndTips("您确定删除选定的记录么?")&==&DialogResult.No)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&return;&&&&&&&&&&&&}&&&&&&&&&&&&int[]&rowSelected&=&this.winGridViewPager1.GridView1.GetSelectedRows();&&&&&&&&&&&&foreach&(int&iRow&in&rowSelected)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&string&ID&=&this.winGridViewPager1.GridView1.GetRowCellDisplayText(iRow,&"ID");&&&&&&&&&&&&&&&&BLLFactory&ItemDetail&.Instance.Delete(ID);&&&&&&&&&&&&}&&&&&&&&&&&&BindData();& & & & }&为GridView行提示信息以及显示行号,有时候为了方便数据的显示,需要在GridView的第一列显示该列的行信息以及行号,那么需要为GridView控件添加一个ToolTipController控件,然后实现该控件的GetActiveObjectInfo事件,在事件里面添加下面代码以及实现GridView控件的CustomDrawRowIndicator事件即可,如下代码所示。& & & &&private&void&toolTipController1_GetActiveObjectInfo(object&sender,&DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs&e)&&&&&&&&{&&&&&&&&&&&&if&(e.SelectedControl&!=&gridControl1)&return;&&&&&&&&&&&&ToolTipControlInfo&info&=&null;&&&&&&&&&&&&//Get&the&view&at&the&current&mouse&position&&&&&&&&&&&&GridView&view&=&gridControl1.GetViewAt(e.ControlMousePosition)&as&GridV&&&&&&&&&&&&if&(view&==&null)&return;&&&&&&&&&&&&//Get&the&view's&element&information&that&resides&at&the&current&position&&&&&&&&&&&&GridHitInfo&hi&=&view.CalcHitInfo(e.ControlMousePosition);&&&&&&&&&&&&//Display&a&hint&for&row&indicator&cells&&&&&&&&&&&&if&(hi.HitTest&==&GridHitTest.RowIndicator)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&//An&object&that&uniquely&identifies&a&row&indicator&cell&&&&&&&&&&&&&&&&object&o&=&hi.HitTest.ToString()&+&hi.RowHandle.ToString();&&&&&&&&&&&&&&&&StringBuilder&sb&=&new&StringBuilder();&&&&&&&&&&&&&&&&sb.AppendLine("行数据基本信息:");&&&&&&&&&&&&&&&&foreach&(GridColumn&gridCol&in&view.Columns)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&if&(gridCol.Visible)&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&sb.AppendFormat("&&&&{0}:{1}\r\n",&gridCol.Caption,&view.GetRowCellDisplayText(hi.RowHandle,&gridCol.FieldName));&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&info&=&new&ToolTipControlInfo(o,&sb.ToString());&&&&&&&&&&&&}&&&&&&&&&&&&//Supply&tooltip&information&if&applicable,&otherwise&preserve&default&tooltip&(if&any)&&&&&&&&&&&&if&(info&!=&null)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&=&&&&&&&&&&&&&}& & & & }&&&&&&&&&&private&void&gridView1_CustomDrawRowIndicator(object&sender,&RowIndicatorCustomDrawEventArgs&e)& & & & {&&&&&&&&&&&&if&(ShowLineNumber)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&e.Appearance.TextOptions.HAlignment&=&DevExpress.Utils.HorzAlignment.F&&&&&&&&&&&&&&&&if&(e.Info.IsRowIndicator)&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&if&(e.RowHandle&&=&0)&&&&&&&&&&&&&&&&&&&&{&&&&&&&&&&&&&&&&&&&&&&&&.DisplayText&=&(e.RowHandle&+&1).ToString();&&&&&&&&&&&&&&&&&&&&}&&&&&&&&&&&&&&&&}&&&&&&&&&&&&}&&&&&&&&}&以上虽然是使用了我的DevExpress分页控件,不过分页控件的内部就是使用了DevExpress的GridControl控件的。&&4、常用布局控件。传统的数据编辑界面,我们一般需要添加一个Label,然后再加一个TextBox或者其他控件,而DevExpress在这方面确实下了不少功夫,引入了一个LayoutControl的控件,该控件可以在你添加一个TextBox等其他控件的时候,自动为你加入一个类似Label的控件,而且布局已经给你设计对齐好,添加几个可以在一行中放置多列控件,对齐效果也非常好,如果是重新设计界面,省却不少对齐以及维护Label的属性。另外,该布局属性可以设置类似GroupBox的边界效果(默认不显示文本和边界),也可以统一设计在该布局控件内部各种控件的效果,如ReadOnly为True的显示如何,Enable为False的显示如何,只需要设置一个地方,就可以统一界面效果了。总之,用起来相当的不错。&&&总体来讲,第一次使用DevExpress会觉得很多地方不太适应,甚至有时候找不到对应的属性,但是当慢慢熟悉了使用该控件来开发的时候,会觉得它确实在很多地方引入了较好的理念,习惯了就觉得效率提高了不少,界面设计上也会觉得更加美观和方便了。由于我只是在我平常开发的小例子,以及我的Winform开发框架中,应用了DevExpress控件的各种常用效果,应该还有很多常用的控件以及高级控件没有用到,以后有继续使用的话,会继续记录相应的经验心得供大家探讨。最后附上一个我应用DevExpress控件改进过Winform开发框架的界面效果图,里面应用到了Ribbon界面效果以及基于DevExpress控件的分页控件(前面有介绍过使用例子),使用了分页控件,对整个GridView的处理上,会方便很多,界面效果如下所示。&&

我要回帖

更多关于 devexpress 分页控件 的文章

 

随机推荐