2009-08-28 16 views
3

テーブルレイアウトパネルがあるカスタムパネルを定義しました。しかし、このコントロールをwinformで使用した場合、テーブルレイアウトパネルのプロパティにアクセスすることはできません。 (たとえば、列を追加したり、セル内の他のコントロールをドッキングする必要があります。私は修飾子のプロパティをpublicに変更しようとしましたが、それでも動作しません。パネルレイアウトのプロパティを表示および変更するにはどうすればよいですか?C#usercontrolすべての子コントロールにアクセスする方法

実際には、より一般的な質問かもしれません:どのようにアクセス/変更/カスタムコントロールに含まれているコントロールを移動するには?

Thxを

答えて

6

あなたはあなたのユーザーコントロールで、変更するプロパティを公開する必要があります。

public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    public int ColumnCount 
    { 
     get 
     { 
      return this.tableLayoutPanel1.ColumnCount; 
     } 

     set 
     { 
      this.tableLayoutPanel1.ColumnCount = value; 
     } 
    } 
} 

ます。また、その後、どのようにユーザーコントロールを制御するためにいくつかの属性を使用して起動することができます。たとえば、ユーザーコントロールから、あなたがColumnCountプロパティを公開する必要があり、テーブルレイアウトコントロールの列カウントプロパティを変更するにはVisual Studioで表示され、例えば、上記のようにのように変更することができます。

[DefaultProperty("ColumnCount")] 
public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
    } 

    [Description("Gets or sets the column count of the table layout.")] 
    [Category("TableLayout")] 
    [DefaultValue(2)] 
    public int ColumnCount 
    { 
     get 
     { 
      return this.tableLayoutPanel1.ColumnCount; 
     } 

     set 
     { 
      this.tableLayoutPanel1.ColumnCount = value; 
     } 
    } 
} 

は、これは「のColumnCount」への全体のユーザーコントロールの既定のプロパティを設定し、列数のプロパティに説明、デフォルトを与えます値は2で、デザイナのプロパティウィンドウに表示するカテゴリを設定します。設計時間のサポートを追加するためのユーザーコントロールを使用すると、さらに多くのことが可能になります。

+0

デザイナーのプロパティウィンドウにいくつかのプロパティを追加してもよろしいですか?しかし、デザイナーに表示される行や列のようなグラフィックサポートも追加できますか?または行と列の編集ツールですか? – Toto

関連する問題