日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

控件属性、事件持久化

發布時間:2025/4/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 控件属性、事件持久化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • 我們知道,在VS2003中,自定義控件要得到Intellisense的支持,必須手工編寫(后來也有人寫了生成工具)Schema,但是在VS2005中,Schema是由IDE自動生成的,就是說,你可以自動獲得所有public屬性和事件的Intellisence。
  • 如果,public的屬性不需要在Intellisence得到支持,而只在后臺代碼中使用,則可以為屬性應用[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]標簽(但是如果屬性同時應用了[Bindable(true)],則屬性仍在SourceView中獲得智能感知)。
  • 如果屬性應用了[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)],則屬性類型的信息也會映射到Schema中,比如Style屬性,屬性類型的子屬性也會得到智能感知的支持。
  • BindableAttribute決定屬性和事件是否顯示在屬性窗口中。
  • PersistenceMode決定持久化屬性的方式,默認為[PersistenceMode(PersistenceMode.Attribute)],表示持久化屬性為主標簽的屬性,如果屬性包含子屬性,則子屬性持久化成破折號連接的樣式,比如Font的子屬性,Font-Name代表Font.Name子屬性;
  • [PersistenceMode(PersistenceMode.InnerProperty)]表示用嵌套標簽表示復雜屬性,比如DataList的ItemStyle屬性,就使用嵌套的子標簽的形式來持久化。
  • [PersistenceMode(PersistenceMode.InnerDefaultProperty)]與[PersistenceMode(PersistenceMode.InnerProperty)]的區別在于,主標簽中的內容分析成此Attribute裝飾的Property,比如,上例中的ItemStyle的值需要序列化在一對<ItemStyle></ItemStyle>標簽中,而InnerDefaultProperty的屬性則可省掉表示屬性名的標簽對,InnerDefaultProperty在一個類中只能應用一次。
  • [PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)]和InnerDefaultProperty不同的是,它會對內容進行HTML Encoding,比如把<div>變成&lt;div&gt;,就是說它的里面將不允許存在子控件和HTML標簽。比如TextBox.Text。
  • ParseChildrenAttribute決定標簽對中的內容是其它的子控件還是嵌套標簽表示的屬性。
  • [ParseChildren(false)]表示把內容分析成子控件或HTML標簽(和關聯的ControlBuilder協同工作)。
  • [ParseChildren(true)]表示把內容分析成屬性,比如DataList中的<ItemStype>等內容。
  • ParseChildren屬性也可以指定默認屬性,比如DropDownList使用[ParseChildren(true, "Items") ]將它的內容默認分析為Items屬性的值(DropDownList控件同時在Items屬性上裝飾了[PersistenceMode(PersistenceMode.InnerDefaultProperty)])。
  • 如果內容中的標簽不能分析成控件類型,則會分析成屬性。
  • [PersistChildren]用來裝飾一個類,決定這個類把內容分析成控件的子控件,還是控件的元素。[PersistChildren(false,true)]后一個true表示使用自定義的持久化,意味著Schema生成器將不生成也不驗證這種控件的內容,比如Xml控件使用內容表示它的xml文檔。
  • [ToolboxItem(false)]意味著控件不會顯示在工具箱中,它也不是能獨立顯示自己內容的控件。比如TableRow,TableCell。
  • 對于Color和枚舉類型,Intellisence會自動提供Picker,對于表示Url的string類型屬性,可以對它們應用[UrlProperty]
  • 轉載于:https://www.cnblogs.com/think/archive/2006/12/10/588341.html

    總結

    以上是生活随笔為你收集整理的控件属性、事件持久化的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。