Пользовательский контроль изменения размера C # - PullRequest
2 голосов
/ 20 июля 2011

Я хотел бы изменить размер пользовательского элемента управления в соответствии с элементами, которые он содержит. Это не работает для меня:

public CustomControl()
{
    InitializeComponent();
    if (ErrorLimits == false && Range == false)
    {
        this.Size = new Size(100, 100);
        this.Invalidate();
    }
    else
    {
        this.Size = new Size(250,250);
        this.Invalidate();
    }

}

Это ничего не меняет, Как я могу добиться этого?Спасибо!

1 Ответ

3 голосов
/ 20 июля 2011

Содержащая форма будет создавать экземпляр CustomControl и затем устанавливать его свойства в функции InitializeComponent формы.Значения свойств, установленные в конструкторе формы, применяются после того, как конструктор до CustomControl завершил (что, если подумать, они должны были бы быть).

Поскольку вызадаете свои собственные размеры в конструкторе элемента управления, они, вероятно, переопределяются значениями конструктора сразу после отображения формы.

Лучшее место для установки размера - UserControl.Load событие, которое происходит после того, как свойства конструктора были установлены.

Еще лучшим вариантом будет правильная поддержка автоматического определения размера .

...