5

私が探しているのは、ユーザーコントロール内のコントロールに対する同じタイプのデザイナーサポートです。つまり、フォームにユーザーコントロールを配置した後、ユーザーコントロール内にあるテキストボックスのサイズを変更し、ラベルを移動します。

私ができたこと...

  1. ユーザーコントロールを作成する
  2. デザイナーを使用してコントロールを追加します
  3. 新しいウィンドウフォームアプリを作成する
  4. ユーザーコントロールをツールボックスに追加します
  5. コントロールをフォームにドラッグアンドドロップします

私が立ち往生しているところ...

  1. ユーザーコントロールコントロールを編集します。IE-デザイナを使用して、ユーザーコントロール内にあるテキストボックスのサイズを変更できます。

スタック上で、答えられなかった同様の質問を見つけました。したがって、あいまいすぎる場合は、このリンクhttps://stackoverflow.com/questions/10359772/example-make-constituent-controls-in-a-usercontrol-editableをたどることができます。

ありがとうございました。

4

1 に答える 1

3

Nikitaのコメントを読んだ後、コントロールのカスタムデザイナーの作成に関するMicrosoftのサポートページを見つけることができました。

設計時のサポートがどのように機能するかに興味がある場合は、ここに見積もりがあります

ただし、.NET Frameworkのコンポーネントの設計時のサポートは、Microsoft VisualStudio.NETなどの設計ツールによってのみ定義されているわけではありません。むしろ、開発環境は、コンポーネントの設計時サポートを提供する設計者などのクラスによる設計時動作の拡張と定義をサポートします。拡張可能でカスタマイズ可能なデザインモードの動作のサポートは、.NETFrameworkの統合された部分です。Visual Studio .NETなどのツールも、設計者が使用できるさまざまな設計時サービスを提供します。

これは、Microsoftのサンプルを読み続けて表示したい場合のWebページです。

デザインタイムサポートの強化

学習を始めたばかりのときは、すべてが複雑に見えます。ここでは、PictureBoxとLabelが含まれているUserControlの実用的なコードサンプルを示します。両方のコントロールは、設計時に編集できます。サイズ変更と再配置を行い、クリックするとすべてのイベントとプロパティが表示されます。

System.Designへの参照を追加する必要があります。これは、「。NetClientProfile」を対象としていない場合にのみ参照できます。Proprieties / Application/TargetFrameworkでターゲットプロファイルを変更できます。

プロジェクトにユーザーコントロールを追加し、そのデザイナーを処理するクラスを追加します。ユーザーコントロールをダブルクリックし、ツールバーからラベルと画像ボックスを追加します。

次に、作成したクラスを開いてデザイナーにします。これを追加...

using System.Windows.Forms;
using System.Windows.Forms.Design;

    public override void Initialize(IComponent component)
    {
        base.Initialize(component);

        if (this.Control is MyUserControl)  // replace this with your usercontrol type
        {
            // cast this.Control to you type of usercontrol to get at it's
            // controls easier
            var i = this.Control as MyUserControl; // replace ***

            this.EnableDesignMode(i.label1, "unique_name1");
            this.EnableDesignMode(i.pictureBox1, "unique_name2");
        }
    }
于 2013-01-15T23:00:23.647 に答える