C # usercontrol как получить доступ ко всем дочерним элементам управления

Я определил пользовательскую панель с панелью размещения таблицы внутри. Однако, когда я использовал этот элемент управления на winform, у меня нет доступа к свойствам панели макета таблицы. (Я хочу, например, добавить столбец или прикрепить другой элемент управления в ячейке). Я пытаюсь изменить свойство модификатора на публичный, но он все равно не работает. Что я могу сделать, чтобы увидеть и изменить свойства макета панели?

Фактически, вопрос может быть более общим: как получить доступ / изменить / переместить элементы управления, содержащиеся в пользовательском контроле пользователя?

Спасибо

Вам необходимо открыть свойства, которые вы хотите изменить, в своем пользовательском элементе управления. Например, чтобы изменить свойство подсчета столбцов элемента управления таблицей, из вашего пользовательского элемента управления вы должны открыть свойство ColumnCount:

public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } public int ColumnCount { get { return this.tableLayoutPanel1.ColumnCount; } set { this.tableLayoutPanel1.ColumnCount = value; } } } 

Затем вы также можете использовать некоторые атрибуты для управления отображением пользовательского элемента управления в 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» и дает свойство count столбца описание, значение по умолчанию 2 и устанавливает, в какой категории он должен отображаться в окне свойств конструктора. Существует намного больше возможностей, которые можно сделать с помощью пользовательского элемента управления, чтобы добавить поддержку времени разработки.