5

たとえば、ラベルとテキストボックスを含むusercontrol(windowsフォーム)を作成したいと思います。そして、クライアントフォームデザイナでサブコントロールのプロパティを設定できるように、2つのサブコントロールをプロパティとして公開したいと思います。

したがって、コードは次のようになります。

パブリック部分クラスLabelTextbox:UserControl
    {{
        public LabelTextbox()
        {{
            InitializeComponent();
        }

        [
           カテゴリ( "外観")、
           閲覧可能(true)、
           Description( "innerLabel")
        ]
        public DevComponents.DotNetBar.LabelX LabelPart
        {{
            得る
            {{
                this.labelxを返します。
            }

            セットする
            {{
                this.labelx=値;
            }
        }


        [
           カテゴリ( "外観")、
           閲覧可能(true)、
           Description( "InnerTextbox")
        ]
        public TextBox TextBoxPart
        {{
            得る
            {{
                this.textboxxを返します。
            }

            セットする
            {{
                this.textboxx=値;
            }
        }
    }

そして、私はそれをデザイナーで見ることができます、それは次のように見えます:

ここに画像の説明を入力してください

しかし、designerでusercontrolの内部ラベルプロパティを設定すると、designer.csでリレーションコードを作成できません。つまり、クライアント設定は保存されません。

では、どうすればこの問題を解決できますか。

ちなみに私はCN出身ですが、英語が苦手です。誰でも私に答えることができます。

4

1 に答える 1

6

DesignerSerializationVisibility属性を使用して、子コントロールのプロパティを装飾します。

[
   Category("Appearance"),
   Browsable(true),
   Description("innerLabel"),
   DesignerSerializationVisibility(DesignerSerializationVisibility.Content)  //<-- here
]
public DevComponents.DotNetBar.LabelX LabelPart {
    get {
        return this.labelx;
    }
    set {
        this.labelx = value;
    }
}
于 2012-10-18T03:14:52.973 に答える