Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Очередность применения свойств 
:(
    Опции темы
Dumm
Дата 7.11.2015, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 11.7.2010

Репутация: нет
Всего: 1



Приветствую! Пишу пользовательский компонент "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. Так вот могу ли я задать этот порядок выполнения?
PM MAIL   Вверх
diadiavova
Дата 7.11.2015, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



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

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Dumm
Дата 7.11.2015, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 11.7.2010

Репутация: нет
Всего: 1



Свойства я перенастроил, просто проектируя компонент, специально расставлял свойства в редакторе в нужном порядке их выполнения. Думал, что компиллятор учтет это. И был мягко говоря, неприятно удивлен, увидев расположение оных по алфавиту, как-то на такое не рассчитывал... Спасибо.
PM MAIL   Вверх
Замабувараев
Дата 13.5.2016, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 11.5.2016
Где: Красноярск

Репутация: нет
Всего: нет



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

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

PM MAIL WWW Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1060 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.