Группировка свойств в юзер контроле

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Группировка свойств в юзер контроле

Сообщение Tarik » 28.06.2005 (Вт) 18:50

Делаю потихоньку свой конкурсный проект на GotDotNet... По ходу возник один вопрос: можно ли в своём контроле сгруппировать свойства (как стандартные Height и Width группируются в Size)? А то получается весьма внушительный список св-в, которые можно было бы спокойно отнести к одной категории...
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Ваня
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 24.06.2005 (Пт) 22:23
Откуда: Московская обл., д. Нестерово

Сообщение Ваня » 28.06.2005 (Вт) 21:40

Можно сделать так:

Код: Выделить всё
Public Class UserControl1
    Dim FNewClassProperty1 As New NewClass
    Public Property NewClassProperty1() As NewClass
        Get
            Return FNewClassProperty1
        End Get
        Set(ByVal Value As NewClass)
            FNewClassProperty1 = Value
        End Set
    End Property
End Class

Public Class NewClass
    Dim FProperty1 As String = "FProperty1"
    Public Property Property1() As String
        Get
            Return FProperty1
        End Get
        Set(ByVal Value As String)
            FProperty1 = Value
        End Set
    End Property

    Dim FProperty2 As Integer = 7
    Public Property Property2() As Integer
        Get
            Return FProperty2
        End Get
        Set(ByVal Value As Integer)
            FProperty2 = Value
        End Set
    End Property
End Class


Но при этом в окне Properties NewClassProperty1 будет недоступен!

Зато в коде проекта, при использовании NewClassProperty1 будет удобно:

Код: Выделить всё
UserControl11.NewClassProperty1.Property1
UserControl11.NewClassProperty1.Property2

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 29.06.2005 (Ср) 9:32

Проблема в том, что мне как раз и нужно, чтобы это было в прупертиз...
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 29.06.2005 (Ср) 10:10

Ваня писал(а):
Но при этом в окне Properties NewClassProperty1 будет недоступен!



Ну так надо как структуру объявлять
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.06.2005 (Ср) 10:14

Дык свойство Size раскрывается списком потому, что оно имеет тип Size, который имеет два мембера.
Это не группировка двух свойств в одно :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 29.06.2005 (Ср) 12:15

ИМХО, имелось в виду это:
Код: Выделить всё
<Browsable(True), Category("Custom"), Description("blah-blah-blah")> _
Public Property MyProperty() As ...

т.е. использование CategoryAttribute из System.ComponentModel...

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 29.06.2005 (Ср) 12:25

Gloom

Tarik писал(а):как стандартные Height и Width группируются в Size
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 29.06.2005 (Ср) 14:10

Ну так надо как структуру объявлять

Если объявить структуру, то в прупертиз появляется
Код: Выделить всё
MyProperty     |     WindowsControlLibrary1.UserControl1+MyStruct

Причём это всё read only.
Дык свойство Size раскрывается списком потому, что оно имеет тип Size, который имеет два мембера.
Это не группировка двух свойств в одно

Про тип-то я знаю, выразился не совсем правильно. :oops:
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList