Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Очередность применения свойств


Автор: Dumm 7.11.2015, 21:31
Приветствую! Пишу пользовательский компонент "Table". В тестирующем проекте кинул на форму Form1 мой компонент как Table1 и задал ему свойства. После этого в файле Form1.Designer.vb увидел такую картину:
Код

        'Table1
        '
        Me.Table1.ColsWidth = "50,30,15,5"
        Me.Table1.ColsWidthBase = 0
        Me.Table1.ColumnsCount = 4
        Me.Table1.CreateRows = False
        Me.Table1.HeaderBackColor = System.Drawing.Color.LightSeaGreen
        Me.Table1.HeaderHeight = 20
        Me.Table1.Location = New System.Drawing.Point(12, 12)
        Me.Table1.Name = "Table1"
        Me.Table1.RowBackColor = System.Drawing.Color.Teal
        Me.Table1.RowHeight = 20
        Me.Table1.Size = New System.Drawing.Size(598, 254)
        Me.Table1.TabIndex = 7
Как я понял из этого фрагмента, VB расставляет свойства контролов формы по алфавиту. Можно ли как-то задать последовательность применения свойств по своему усмотрению? Поскольку возникает ситуация, когда, например, в свойстве ColumnsCount задействованы переменные, инициализация которых происходит, например, в HeaderHeight. И соответственно HeaderHeight надо выполнять раньше ColumnsCount. Так вот могу ли я задать этот порядок выполнения?

Автор: diadiavova 7.11.2015, 22:29
Цитата(Dumm @  7.11.2015,  21:31 Найти цитируемый пост)
Так вот могу ли я задать этот порядок выполнения? 

Задать - вряд ли. Можно написать собственный сериалайзер, но это очень геморно и я даже не знаю, есть ли литература, описывающая этот процесс. В любом случае оно того не стоит (плавали - знаем), лучше подумай, как можно переписать логику самого компонента так, чтобы от порядка инициализации свойств ничего не зависело. Если этого не сделать, то подобные проблемы могут возникать и дальше, это плохое решение.

Автор: Dumm 7.11.2015, 22:40
Свойства я перенастроил, просто проектируя компонент, специально расставлял свойства в редакторе в нужном порядке их выполнения. Думал, что компиллятор учтет это. И был мягко говоря, неприятно удивлен, увидев расположение оных по алфавиту, как-то на такое не рассчитывал... Спасибо.

Автор: Замабувараев 13.5.2016, 14:45
Цитата(Dumm @  7.11.2015,  21:31 Найти цитируемый пост)
Можно ли как-то задать последовательность применения свойств по своему усмотрению? 

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)