<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      WinForm控件開發(fā)總結(七)-----為復雜屬性的子屬性提供編輯功能

            前面的幾篇文章中,我們給控件添加一個復雜的類型Scope,并且給它的類型提供的一個類型轉換器,現(xiàn)在我們可以在屬性瀏覽器中編輯它的值,并且它的值也被串行化的源代碼里了。但是你有沒有發(fā)現(xiàn),在屬性瀏覽器里編輯這個屬性的值還是不太方便。因為屬性只是“10200這種形式的,所以,你必須按照這種格式來修改,一旦格式錯誤就會引發(fā)異常,比如輸入一個“10200。我們期望這個屬性的每一子屬性都能夠被獨立的編輯就好了,這并非不能實現(xiàn),而且實現(xiàn)還很簡單。
            為了在屬性瀏覽器里能夠獨立的編輯子屬性,我們還要重寫兩個方法:GetPropertiesSupported()和GetProperties();下面是ScopeConverter的完整代碼:
         
      public class ScopeConverter : TypeConverter
          
      {
              
      public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
              
      {
                  
      if (sourceType == typeof(String)) return true;

                  
      return base.CanConvertFrom(context, sourceType);
              }


              
      public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
              
      {
                  
      if (destinationType == typeof(String)) return true;

                  
      if (destinationType == typeof(InstanceDescriptor)) return true;

                  
      return base.CanConvertTo(context, destinationType);
              }


              
      public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
              
      {
                  String result 
      = "";
                  
      if (destinationType == typeof(String))
                  
      {
                      Scope scope 
      = (Scope)value;
                      result 
      = scope.Min.ToString()+"," + scope.Max.ToString();
                      
      return result;

                  }


                  
      if (destinationType == typeof(InstanceDescriptor))
                  
      {
                      ConstructorInfo ci 
      = typeof(Scope).GetConstructor(new Type[] {typeof(Int32),typeof(Int32) });
                      Scope scope 
      = (Scope)value;
                      
      return new InstanceDescriptor(ci, new object[] { scope.Min,scope.Max });
                  }

                  
      return base.ConvertTo(context, culture, value, destinationType);
              }


              
      public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
              
      {
                  
      if (value is string)
                  
      {
                      String[] v 
      = ((String)value).Split(',');
                      
      if (v.GetLength(0!= 2)
                      
      {
                          
      throw new ArgumentException("Invalid parameter format");
                      }


                      Scope csf 
      = new Scope();
                      csf.Min 
      = Convert.ToInt32(v[0]);
                      csf.Max 
      = Convert.ToInt32(v[1]);
                      
      return csf;
                  }

                  
      return base.ConvertFrom(context, culture, value);
              }


              
      public override bool GetPropertiesSupported(ITypeDescriptorContext context)
              
      {
                  
      return true;
              }


              
      public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes)
              
      {
                  
      return TypeDescriptor.GetProperties(typeof(Scope), attributes);
              }

      }

            在GetProperties方法里,我用TypeDescriptor獲得了Scope類的所有的屬性描述器并返回。如果你對TypeDescriptor還不熟悉的話,可以參考MSDN。
            重寫這兩個方法并編譯以后,在測試工程里查看控件的屬性,你可以看到Scope是如下的形式:
            
            
      posted @ 2006-12-15 21:49  綸巾客  閱讀(9079)  評論(20)    收藏  舉報
      主站蜘蛛池模板: 全免费A级毛片免费看无码| 熟妇人妻不卡中文字幕| 午夜成人无码免费看网站| 亚洲精品成人福利网站| 欧美一区二区三区性视频| 无人去码一码二码三码区| 久久精品第九区免费观看| 午夜毛片不卡免费观看视频| 77777亚洲午夜久久多人| 国产精品天堂蜜av在线播放| 亚洲 欧洲 无码 在线观看| 海南省| 囯产精品一区二区三区线| 亚洲国产精品一区第二页| 精品一区二区三区自拍图片区| 长腿校花无力呻吟娇喘| 日韩中av免费在线观看| 中文字幕av一区二区三区人妻少妇| 亚洲中文字幕无码爆乳app| 午夜国产精品福利一二| 日韩有码中文在线观看| 久久综合久中文字幕青草| 久久日韩精品一区二区五区| 欧美激情综合色综合啪啪五月| 又大又粗又硬又爽黄毛少妇| 亚洲精品乱码免费精品乱| av无码精品一区二区乱子| 欧洲一区二区中文字幕| 国产精品大片中文字幕| 国产99视频精品免费专区| 色综合天天综合网国产人| 成年在线观看免费人视频| 四虎影视库国产精品一区| 亚洲精品日本一区二区| 欧美日韩不卡合集视频| 亚洲国产码专区在线观看| 国产一区二区三区综合视频| 国产区精品福利在线熟女| 久久人妻无码一区二区三区av| 黑人好猛厉害爽受不了好大撑| 久久综合国产色美利坚|