почему инициализируются компоненты до SuspendLayout в c # winforms - PullRequest
0 голосов
/ 17 сентября 2011

я проектирую форму окна в c # .Net fw-3.5,

я проверил сгенерированный код с помощью c # в файле designer.cs

        this.label1 = new System.Windows.Forms.Label();
        this.button1 = new System.Windows.Forms.Button();
        this.textBox1 = new System.Windows.Forms.TextBox();

        this.SuspendLayout();

и после команды SuspendLayout присваиваются все свойства компонентов.

мой вопрос: есть ли здесь особая причина для инициализации объекта перед SuspendLayout?

Ответы [ 2 ]

2 голосов
/ 17 сентября 2011

Это действительно не будет иметь никакого значения в любом случае - это не то же самое, что компоненты были добавлены в форму, так что он не будет размещать их, затем приостанавливать макет, а затем изменять все.

Я подозреваю, что это просто облегчает генерацию кода, если все переменные назначены и затем используется, вместо того, чтобы выяснять, были ли какие-либо зависимости между различными объектами.

1 голос
/ 17 сентября 2011

Потому что нет необходимости делать это заранее. Инициализация объекта не имеет отношения к вызову SuspendLayout, так зачем делать это раньше? Даже автоматически сгенерированный код может быть выложен логически. Если бы я писал этот код вручную, я бы сделал то же самое по той же причине, по которой я объявлял переменные как можно ближе к месту их первого использования (конечно, этот пример усложнил бы процесс генерации, так что они просто инициализировать их в начале).

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