在这个例子中将实现让该属性控件实现排序按钮。
效果如图:
首先2个按钮是 CheckButton 控件。
然后是一个:PropertyGridControl 控件
为了美观一点,将2个CheckButton控件的AllowFocus属性设置为 False
-----------------------------------------------------------
代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Repository; using DevExpress.XtraVerticalGrid; using DevExpress.Utils; using DevExpress.XtraBars; using System.Reflection; namespace WindowsFormsApplication1 { /// <summary> /// <para>Demo By Andrew.</para> /// <para>Date:2012-8-8 14:23:27</para> /// Andrew's Blog : http://www.cnblogs.com/andrew-blog /// </summary> public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm { /// <summary> /// 设定2个CheckButton按钮的事件、属性初始化 /// 将PropertyGridControl控件的绑定对象为自己。 /// </summary> public XtraForm1() { InitializeComponent(); checkBtnPropertySort.CheckedChanged += new EventHandler(checkBtnSort); checkBtnAZSort.CheckedChanged += new EventHandler(checkBtnSort); SetBarButtonToolTip(checkBtnPropertySort, "分组排序"); SetBarButtonToolTip(checkBtnAZSort, "按字母排序"); this.checkBtnPropertySort.Image = Image.FromFile("Categorized.png"); this.checkBtnAZSort.Image = Image.FromFile("Alphabetical.png"); checkBtnPropertySort.Checked = true; propertyGridControl.SelectedObject = propertyGridControl; } //CheckButton.CheckeChange事件 void checkBtnSort(object sender, EventArgs e) { CheckButton thisChk = (CheckButton)sender; if (thisChk == checkBtnPropertySort) { if (checkBtnPropertySort.Checked) SetBarButtonDown(checkBtnAZSort, false); else SetBarButtonDown(checkBtnAZSort, true); } else { if (checkBtnAZSort.Checked) SetBarButtonDown(checkBtnPropertySort, false); else SetBarButtonDown(checkBtnPropertySort, true); } UpdatePropertyGrid(); } //设置按钮的鼠标悬浮气泡提示信息 static void SetBarButtonToolTip(CheckButton chkBtn, string value) { SuperToolTip superToolTip = new SuperToolTip(); ToolTipTitleItem toolTipTitleItem = new ToolTipTitleItem(); toolTipTitleItem.Text = value; superToolTip.Items.Add(toolTipTitleItem); chkBtn.SuperTip = superToolTip; } //设置按钮是否按下 void SetBarButtonDown(CheckButton chkBtn, bool value) { chkBtn.CheckedChanged -= new EventHandler(checkBtnSort); chkBtn.Checked = value; chkBtn.CheckedChanged += new EventHandler(checkBtnSort); } //更变控件排序方式 void UpdatePropertyGrid() { this.propertyGridControl.OptionsView.ShowRootCategories = this.checkBtnPropertySort.Checked; } } }
以上代码的Demo下载:http://files.cnblogs.com/andrew-blog/AndrewPropertyGridControlDemo.rar
另外推荐一篇来自DEV控件官方的参考资料:http://documentation.devexpress.com/#WindowsForms/CustomDocument9266