1

UserControl クラスを拡張する独自のカスタム コントロールを拡張しています。

拡張クラスのデザイナーですべての要素を正常に表示できますが、拡張カスタム コントロールのすべてのプロパティが無効に表示され、マウスでその要素を選択すると「ロックされた」アイコンが表示されます。

どうすれば修正できますか?これらのプロパティをデザイナーから変更できるようにしたいと考えています。

編集: UserControl から拡張されるカスタム コントロールの定義。

namespace Wizard
{
    [Designer(typeof(Wizard.StepDesigner))]
    [DefaultProperty("TitlePanel, NavigationPanel")]
    public partial class Step : UserControl
    {
         public Step()
         {
            InitializeComponent();
         }

         [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
         public Title TitlePanel
         {
              get
              {
                    return this.title1;
              }
              set
              {
                   this.title1 = value;
              }
          }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Panel ContentPanel
        {
            get
            {
                 return this.contentPanel;
            }
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Navigation NavigationPanel
        { 
             get
             {
                 return this.navigation1;
             }
         }
     }

     internal class StepDesigner : ParentControlDesigner
     {
         public override void Initialize(System.ComponentModel.IComponent component)
         {
            base.Initialize(component);

            if (this.Control is Step)
            {
                 Step control = (Step)this.Control;
                 this.EnableDesignMode(control.TitlePanel, "TitlePanel");
                 this.EnableDesignMode(control.ContentPanel, "ContentPanel");
                 this.EnableDesignMode(control.NavigationPanel, "NavigationPanel");
             }
         }  
     }
 }
4

1 に答える 1

1

コメントですでに指摘したように、プロパティの修飾子はすべてプライベートに設定され、保護されたものに変更してソリューションを再構築すると、「問題」が修正されました。

于 2012-10-11T18:42:27.783 に答える