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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Редактирование свойст контрола через окно Properti 
V
    Опции темы
Хоббит
Дата 31.10.2006, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

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



Сдедлал я свой контрол. В нем есть некоторое свойство (моего класса). В этом классе есть свой свойства (элементарных типов)

Когда добавляю контрол на форму и редактирую свойства в окне Properties  изменить свойства моего класса невозможно. Там написанно просто имя свойства и имя его типа.
Как сделать его доступным для редактирования через это окно.
Кажется это через атрибуты делается?

Где еще можно почитать про атрибуты, желательно на русском.
В большинстве книг это твопрос раскрывается слишком узко.
PM MAIL   Вверх
ivashkanet
Дата 31.10.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


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

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



Хоббит, это очень странно  smile 
Только что проверил --- ничего не надо устанавливать атрибутами. Свойство переходит во вкладку Misс
А можно код контрола?

Добавлено @ 16:46 
Вот код контрола:
Код

public partial class UserControl1 : UserControl
    {
        [Category("MyCategory"),DefaultValue("Тили-тили, трали-вали"), Browsable(true)]
        public string MyProperty
        {
            get { return label1.Text; }
            set { label1.Text = value; }
        }
    
        public UserControl1()
        {
            InitializeComponent();
        }
    }

В InitializeComponent() находится только добавление Label-a.

Category --- отчечает за категорию в которой появляется свойство,
DefaultValue --- то значение которое не будет выделяться жирным в дизайнере и кторое не будет выставлятся в коде дизайнера формы  smile 
Browsable --- будет ли появляться это свойство в диспетчере свойств (по умолчанию true)
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 31.10.2006, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(Хоббит @  31.10.2006,  15:23 Найти цитируемый пост)
 В нем есть некоторое свойство (моего класса)

Если у свойства не элементарный тип, нужно поставить над свойством (или же над своим классом) атрибут [TypeConverter(...)], где "..." - тип конвертера, задающего способ редактирования свойства. Для классов отлично подходит:
Код
[TypeConverter(typeof(ExpandableObjectConverter))]
.



--------------------
user posted image
PM MAIL WWW   Вверх
Хоббит
Дата 2.11.2006, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

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



Вот ..... правильно! Уже лучше. А если нужно при изменении кагого то совйства (допустим видимость какого-то элемента контрола)  запретить изментять его другие свойства. И второе, не все свойства моего класса нужно отображать ([Browsable(false)])???
PM MAIL   Вверх
ivashkanet
Дата 2.11.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


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

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



Цитата(Хоббит @  2.11.2006,  11:54 Найти цитируемый пост)
[Browsable(false)]

Да
Цитата(Хоббит @  2.11.2006,  11:54 Найти цитируемый пост)
А если нужно при изменении какого то свойства (допустим видимость какого-то элемента контрола)  запретить изменять его другие свойства

Попробуй поиграться с set-ером этих свойств типа

Код

set{
if (this._visible == true)
_myField = value
}

PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 2.11.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Цитата(Хоббит @  2.11.2006,  11:54 Найти цитируемый пост)
 А если нужно при изменении кагого то совйства (допустим видимость какого-то элемента контрола)  запретить изментять его другие свойства.

Если в сеттере свойства запретить менять значение, то через дизайнер его тоже нельзя будет изменить (увидеть - можно).

Цитата(Хоббит @  2.11.2006,  11:54 Найти цитируемый пост)
 И второе, не все свойства моего класса нужно отображать ([Browsable(false)])???

Это задаётся статически, атрибутом Browsable над свойством.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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