C# Dev控件中的 PropertyGridControl 屬性控件的基本用法以及排序


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

效果如圖:

 

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

參考:http://www.wxzzz.com/?id=114


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM