propertyGrid 属性排序

propertyGrid 属性排序如何不为按照字母排序,就按照我自己写的排序呢?

        CProperty spT0 = new CProperty("环境温度(K)", 298);
        spT0.Category = "环境";
        CProperty spP0 = new CProperty("环境压力(Pa)", 100000);
        spP0.Category = "环境";
        CProperty spPint = new CProperty("管道的最初的压力(Pa)", 4200000);
        spPint.Category = "管道";
        CProperty spUw = new CProperty("风速(m/s)", 2);
        spUw.Category = "环境";
        CProperty spQor = new CProperty("泄漏速率(kg/s)", 0.46);
        spQor.Category = "管道";
        CProperty spThetaj = new CProperty("泄漏孔轴线与水平面之间的垂直夹角(°)", 85);
        spThetaj.Category = "计算参数";
        CProperty spThetajv = new CProperty("孔口轴线与水平面在风速方向之间的夹角(°)", 0);
        spThetajv.Category = "计算参数";
        CProperty spX = new CProperty("观测点到喷射孔的水平距离(m)", 150);
        spX.Category = "计算参数";
        CProperty spXpicker = new CProperty("距离间隔(m)", 3);
        spXpicker.Category = "计算参数";
        CProperty spPw = new CProperty("环境温度下水的分压力(Pa)", 1705);
        spPw.Category = "环境";

        CPropertyCollection spCollection = new CPropertyCollection();
        spCollection.Add(spT0);
        spCollection.Add(spP0);
        spCollection.Add(spPint);
        spCollection.Add(spUw);
        spCollection.Add(spQor);
        spCollection.Add(spThetaj);
        spCollection.Add(spThetajv);
        spCollection.Add(spX);
        spCollection.Add(spPw);
        spCollection.Add(spXpicker);
        pgcJetFire.SelectedObject = spCollection;

propertyGrid是自动排序的,不过你可以给不同的属性添加catalog,这样用分类方式查看,就容易找了。