真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

NET框架PropertyGrid控件-創(chuàng)新互聯(lián)

NET框架PropertyGrid控件是 Visual Studio .NET 屬性瀏覽器的核心。PropertyGrid控件顯示對(duì)象或類(lèi)型的屬性,并主要通過(guò)使用反射來(lái)檢索項(xiàng)目的屬性

創(chuàng)新互聯(lián)主要從事做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)靈丘,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18982081108

         首先創(chuàng)建 PropertyGrid控件要使用 Visual Studio .NET 創(chuàng)建 PropertyGrid控件,需要將該控件添加到工具箱中,因?yàn)槟J(rèn)情況下并不包含該控件。在 Tools(工具)菜單中,選擇 Customize Toolbox(自定義工具箱)。在對(duì)話框中選擇 Framework Components(框架組件)選項(xiàng)卡,然后選擇 PropertyGrid。

PropertyGrid包含以下部分:

·        屬性

·        可展開(kāi)屬性

·        屬性類(lèi)別標(biāo)題

·        屬性說(shuō)明

·        屬性編輯器

·        屬性選項(xiàng)卡

·        命令窗格(顯示控件設(shè)計(jì)器提供的設(shè)計(jì)器操作)

PropertyGrid的外觀特征

·         PropertyGrid 的許多外觀特征都可以自定義。下面列出了其中的一部分:

·        通過(guò) HelPBackColor、HelpForeColorHelpVisible屬性可以更改背景顏色、更改字體顏色或隱藏說(shuō)明窗

·        通過(guò) ToolbarVisible屬性可以隱藏工具欄,通過(guò) BackColor屬性可以更改工具欄的顏色,通過(guò) LargeButtons屬性可以顯示大工具欄按鈕。

·        使用 PropertySort屬性可以按字母順序?qū)傩赃M(jìn)行排序和分類(lèi)。

·        通過(guò) BackColor屬性可以更改拆分器的顏色。

·        通過(guò) LineColor屬性可以更改網(wǎng)格線和邊框。

·        本示例中的選項(xiàng)窗口不需要工具欄,因此可以將ToolbarVisible設(shè)置為 false。其余屬性均保留默認(rèn)設(shè)置。

更改屬性的顯示方式

要更改某些屬性的顯示方式,您可以對(duì)這些屬性應(yīng)用不同的特性。特性是用于為類(lèi)型、字段、方法和屬性等編程元素添加批注的聲明標(biāo)記,在運(yùn)行時(shí)可以使用反射對(duì)其進(jìn)行檢索。下面列出了其中的一部分:

DescriptionAttribute - 設(shè)置顯示在屬性下方說(shuō)明幫助窗格中的屬性文本。這是一種為活動(dòng)屬性(即具有焦點(diǎn)的屬性)提供幫助文本的有效方法??梢詫⒋颂匦詰?yīng)用于 MaxRepeatRate 屬性。

CategoryAttribute - 設(shè)置屬性在網(wǎng)格中所屬的類(lèi)別。當(dāng)您需要將屬性按類(lèi)別名稱(chēng)分組時(shí),此特性非常有用。如果沒(méi)有為屬性指定類(lèi)別,該屬性將被分配給雜項(xiàng)類(lèi)別。可以將此特性應(yīng)用于所有屬性。

BrowsableAttribute – 表示是否在網(wǎng)格中顯示屬性。此特性可用于在網(wǎng)格中隱藏屬性。默認(rèn)情況下,公共屬性始終顯示在網(wǎng)格中??梢詫⒋颂匦詰?yīng)用于 SettingsChanged 屬性。

ReadOnlyAttribute – 表示屬性是否為只讀。此特性可用于禁止在網(wǎng)格中編輯屬性。默認(rèn)情況下,帶有 get 和 set 訪問(wèn)函數(shù)的公共屬性在網(wǎng)格中是可以編輯的??梢詫⒋颂匦詰?yīng)用于 AppVersion 屬性。

DefaultValueAttribute – 表示屬性的默認(rèn)值。如果希望為屬性提供默認(rèn)值,然后確定該屬性值是否與默認(rèn)值相同,則可使用此特性??梢詫⒋颂匦詰?yīng)用于所有屬性。

DefaultPropertyAttribute – 表示類(lèi)的默認(rèn)屬性。在網(wǎng)格中選擇某個(gè)類(lèi)時(shí),將首先突出顯示該類(lèi)的默認(rèn)屬性。

PropertyGrid有一個(gè) property 為「SelectedObject」,用來(lái)指向所關(guān)連的物件。如下所示:

             Class newclass=newClass();     (例:propertyGrid控件)

propertyGrid1.SelectedObject = newclass;

PropertyGrid主要應(yīng)用:

1.自定義一個(gè)布爾型的屬性下拉框:

                   private bool _bool;

                     [CategoryAttribute("布爾型"), DescriptionAttribute("布爾型")]

                   public bool 布爾型

                   {

                        get { return _bool; }

                        set { _bool = value;}

                   }

2.自定義一個(gè)枚舉型的屬性下拉框:

            publicenum s

                      {

                            a = 1,

                       b = 2,

                       c = 4

                   }

                   private s test = s.a;

                   [CategoryAttribute("枚舉型"), DescriptionAttribute("這是一個(gè)枚舉的下拉框")]

                   public s 枚舉

                       {

                            get { return test; }

                                set { test = value; }

                       }

3.自定義一個(gè)INT數(shù)組類(lèi)型屬性對(duì)話框:

                 privateint[] arr;

               [CategoryAttribute("數(shù)組型"), DescriptionAttribute("這是一個(gè)數(shù)組的對(duì)話框")]

               public int[] 數(shù)組

                   {

                        get { return arr; }

                        set { arr = value; }

                      }

         4 屬性轉(zhuǎn)換器(TypeConverter)

       //自定義的StringConverter類(lèi)型設(shè)置(包括自定義類(lèi)型轉(zhuǎn)換器

       privatestring _fileName="1";

       [CategoryAttribute("自定義的復(fù)雜類(lèi)型設(shè)置(包括自定義類(lèi)型轉(zhuǎn)換器)"),TypeConverterAttribute(typeof(FileNameConverter)), ReadOnlyAttribute(false)]

       publicstring FileName

       {

           get{ return this._fileName;}

           set{ this._fileName = value;}

       }

//定義一個(gè)FileNameConverter繼承 StringConverter轉(zhuǎn)換器

       publicclass FileNameConverter: System.ComponentModel.StringConverter

       {

           ///

           ///根據(jù)返回值確定是否支持下拉框的形式

           ///

           ///

           /// true: 下來(lái)框的形式

           /// false: 普通文本編輯的形式

           ///

           publicoverride boolGetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContextcontext)

           {

               return true;

           }

           ///下拉框中具體的內(nèi)容

           publicoverride System.ComponentModel.TypeConverter.StandardValuesCollectionGetStandardValues(System.ComponentModel.ITypeDescriptorContextcontext)

           {

               return new StandardValuesCollection(newstring[] { "1","2", "3"});

           }

           ///根據(jù)返回值確定是否是不可編輯的文本框

           /// true: 文本框不可以編輯

           /// flase: 文本框可以編輯

           publicoverride boolGetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContextcontext)

           {

               return true;

           }

       }

       5.自定義一個(gè)帶圖片的屬性

       privateGrade x = newGrade(100);

       publicGrade X

       {

           get

           {

               return x;

           }

           set

           {

               x = value;

           }

       }

///指定用作此屬性所綁定到的對(duì)象的轉(zhuǎn)換器的類(lèi)型

       [TypeConverterAttribute(typeof(ExpandableObjectConverter)),Category("自定義帶圖片屬性"), Description("自定義帶圖片屬性")]

//指定用來(lái)更改屬性的編輯器

       [Editor(typeof(GradeEditor),typeof(UITypeEditor))]

       publicstruct Grade

       {

           privateint grade;

           publicGrade(int grade)

           {

               this.grade = grade;

           }

           publicint Value

           {

               get

               {

                   return grade;

               }

           }

       }

       publicclass GradeEditor: UITypeEditor

       {

           //    指示指定的上下文是否支持在指定的上下文內(nèi)繪制對(duì)象值的表示形式。

           //

           //參數(shù):

           //  context:

           //    可用于獲取附加上下文信息的 System.ComponentModel.ITypeDescriptorContext。

           //

           //返回結(jié)果:

           //    如果實(shí)現(xiàn)System.Drawing.Design.UITypeEditor.PaintValue(System.Object,System.Drawing.Graphics,System.Drawing.Rectangle),則為

           //    true;否則為 false。

           publicoverride boolGetPaintValueSupported(ITypeDescriptorContextcontext)

           {

               return true;

           }

           //使用指定的System.Drawing.Design.PaintValueEventArgs 繪制某個(gè)對(duì)象的值的表示形式。

           publicoverride voidPaintValue(PaintValueEventArgs pe)

           {

               // 選擇根據(jù)valu的正確的位圖

               string bmpName = null;

               Grade g = (Grade)pe.Value;

               if (g.Value > 80)

               {   //可修改 bmpName  à圖片

                  // bmpName = @"C:\Documents andSettings\Administrator\桌面\ll\ll\2.ico";

               }

               else if (g.Value >60)

               {

                   //bmpName = @"C:\Documents and Settings\Administrator\桌面\ll\ll\3.ico";

               }

               else

               {

                  // bmpName = @"C:\Documents andSettings\Administrator\桌面\ll\ll\4.ico";

               }

               // 畫(huà)在表面上的位圖提供了// 多個(gè)圖片Bitmap b = new Bitmap(typeof(GradeEditor),bmpName)。

               Bitmap b = new Bitmap(global::propertyGrid.Properties.Resources.t1);

               //指示繪制內(nèi)容和繪制位置  pe.Bounds-->獲取圖片是矩形

               pe.Graphics.DrawImage(b, pe.Bounds);

               //釋放圖象的對(duì)象

               b.Dispose();

           }

       }

如圖1所示:NET 框架 PropertyGrid 控件     如圖2所示:NET 框架 PropertyGrid 控件

      6屬性框選項(xiàng)卡的擴(kuò)展  -à屬性窗口的工具欄上有一個(gè)像閃電的按鈕,按下這個(gè)按鈕屬性窗口就會(huì)切換到屬性二

        //標(biāo)識(shí)為要顯示的屬性選項(xiàng)卡  PropertyTabScope.Component:此選項(xiàng)卡被添加到當(dāng)前的”屬性“窗口中去

        [PropertyTabAttribute(typeof(TypeCategoryTab),PropertyTabScope.Component)]

          classClass

{

private string _屬性二 ;

       [BrowsableAttribute(false)]

       public string屬性二

       {

             get{return _屬性二; }

             set{ _屬性二=value;}

       }

       public classTypeCategoryTab :System.Windows.Forms.Design.PropertyTab

       {

           // 提供自定義一個(gè) 選項(xiàng)卡按扭 名字

           publicoverride stringTabName

           {

               get

               {

                   return"屬性(二)";

               }

           }

           // 提供選項(xiàng)卡按扭 的位圖

           publicoverride System.Drawing.Bitmap Bitmap

           {

               get

               {

                   Bitmapbmp = new Bitmap(global::propertyGrid.Properties.Resources.t1);

                   returnbmp;

               }

           }

           //獲取指定組件屬性的集合的對(duì)象

           //component:檢索屬性的組件

           //attributes:檢索的屬性(Property) 的屬性 (Attribute) 的System.Attribute 類(lèi)型的數(shù)組

           publicoverride System.ComponentModel.PropertyDescriptorCollection GetProperties(object component, System.Attribute[]attributes)

           {///檢索 屬性框中屬性為隱藏的->[BrowsableAttribute(false)]的屬性集合

               PropertyDescriptorCollectionprops;

               Attribute[]att = new Attribute[]{ BrowsableAttribute.No};

               if(attributes == null)

                   props = TypeDescriptor.GetProperties(component);

               else

                   props = TypeDescriptor.GetProperties(component, att);

               return props;

           }

           /// 獲取指定組件的屬性。

           publicoverride System.ComponentModel.PropertyDescriptorCollection GetProperties(object component)

           {

               return this.GetProperties(component,null);

           }

 }

}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)頁(yè)名稱(chēng):NET框架PropertyGrid控件-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/pdgeh.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部