3

このユーザー コントロールを作成しました。

ここに画像の説明を入力

そのユーザー コントロールをメイン フォームに追加したので、それをカスタマイズしたいと思います。そのため、これら 3 つのボタンにテキストを追加し、ラベルにテキストを追加し、ListBox にデータを入力し、ボタンのクリック イベントを設定する必要があります。

それを行う適切な方法は何ですか?

私はウェブを見回しましたが、どうやらそれを行う方法は、ユーザーコントロールにパブリックプロパティを追加して、必要なコントロールの個々のプロパティを公開することです。

何かのようなもの:

    public string Button1Text
    {
        get
        {
            return btn1.Text;
        }
        set
        {
            btn1.Text = value;
        }
    }

この方法に進むと、この単純なユーザー コントロールにかなりの数のパブリック プロパティを追加する必要があります。

しかし、このようにユーザー コントロールでコントロール全体を公開するだけの方が簡単ではないでしょうか。

    public Button MyButton1
    {
        get { return this.btn1; }
        set { this.btn1 = value; }
    }

そうすれば、メイン フォームは必要に応じてコントロールとそのプロパティに簡単にアクセスできます。

4

3 に答える 3

3

最初の方法は、カプセル化の観点から優れています。2 番目の方法では、コントロールのユーザー (フォーム) がコントロールのビューに依存するようになり、これにより、将来のビューへの変更が防止されます。

于 2012-04-29T08:02:04.240 に答える
2

コードの最初のビットはそれを行う正しい方法です。それらをたくさん作成する必要がありますが、それはそれを行うための適切な方法です。

于 2012-04-29T07:53:47.143 に答える
1

最初のものは、親コントロールからアクセスできるようにしたいボタンの個々のプロパティに対してのみプロパティを作成する場合にはるかに優れています。

2 番目の方法を使用すると、コントロールを使用したい人は誰でも、コントロール内の個々のコントロールを移動およびサイズ変更できます。その後、それはもはやカスタム コントロールではなく、パネルよりも使いにくいパネルのようなものです。親がサブコントロール内の個々の要素を移動できるようにする理由は考えられません。

于 2012-04-30T15:47:00.440 に答える