C # usercontrol, как получить доступ ко всем дочерним элементам управления - PullRequest
4 голосов
/ 28 августа 2009

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

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

Thx

1 Ответ

7 голосов
/ 28 августа 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...