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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

控件属性、事件持久化(转)

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

    原文鏈接>>
  • 轉(zhuǎn)載于:https://www.cnblogs.com/easyleo/p/3177344.html

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。