在這個例子中將實現讓該屬性控件實現排序按鈕。
效果如圖:

首先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
