デザイン時に複合コントロール内の子コントロールを開く方法

 

使用するユーザーコントロールをしたい場合は、しなければならない子コントロールの内部で時々 、複合コントロールを作るために多くのプロパティ、メソッド、イベントや外部の相互作用を、ユーザーコントロールが再オープンするには、これらのインタフェースは、我々は、この対外直接公衆を考慮することができるものの重い作業負荷になります子コントロールは、であるユーザーコントロール私たちはデザインの制御、(のように達成する必要がある場合は、子コントロールに直接アクセスするためのパブリックプロパティを提供し、パネルの効果のコントロールが同じ以内にドラッグ&ドロップすることができますが)、私たちは自分自身を使用する必要がありますデザイナーのデザイナーデザイナー独自のデザイナーのカスタム属性をロードします。

以下のような:

ContractedBlock.gif ExpandedBlockStart.gif コード
[デザイナー(typeof演算(LawCaseDesigner))]
[DesignTimeVisible(
)]
[DefaultEvent(
" SearchLawCase " )]
パブリックパーシャルクラス CtrlLawCaseSearch:ユーザーコントロール{ /// <要約> ///  搜索按键/// </要約>         [閲覧()]         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] パブリック XPButton BtnSearch         { 取得 {  戻り、この.btnSearchと、}         } ......  

        
 
        

        
 


        


            
 



 
     あなたが唯一の1つ以上の子コントロールを開きたい場合は、その設計からすることができ ControlDesigner 導き出す。同時に、同社はこの子が制御したかったのUserControlをから、コンテナとして ParentControlDesignerが派生しました。

オーバーライドによって初期化()EnableDesignMode子コントロールを開示された方法を使用して、方法。

例:

ContractedBlock.gif ExpandedBlockStart.gif LawCaseDesigner 内部クラス LawCaseDesigner:ParentControlDesigner     { プライベート CtrlLawCaseSearch MyControlと。公共オーバーライドボイド 初期(IComponent成分)        { 塩基.Initialize(成分)//  私たちが設計しているコントロールの録音インスタンス            MyControlと  =  (CtrlLawCaseSearch)コンポーネントを。この.EnableDesignMode(MyControl.BtnSearch、  " btnSearch " ); // this.EnableDesignMode(MyControl.BtnTest、 "btnTestを");         }     }
    

        

        
  

            

           


            

            



   

ます。https://www.cnblogs.com/Yjianyong/archive/2009/08/06/1540676.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33775572/article/details/94199500