С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 1
Регистрация: 24.01.2010
Сообщений: 3

Отображение свойств нового класса.

24.01.2010, 12:21. Показов 1986. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем ситуация такая, хочу создать класс наследуемый от визуального, используя при этом в качестве атрибута другой собственный класс. Все получилось, но в окне свойств при проектировании не отображаются свойства класса использованного в качестве атрибута. В обоих классах использовал свойства get и set, результат нулевой. Пробовал использовать структуру вместо класса тоже самое. В качестве эксперимента использовал структуру System.Drawing.Point свойства отображаются.
Все пишу на C# в Visual Studio 2008 Express.

Помогите кто чем может.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.01.2010, 12:21
Ответы с готовыми решениями:

Обнуление всех свойств класса
Подскажите пожайлуста... У меня есть класс, в нем есть довольно много свйоств. В какой то момент создаеться экземпляр класса. Этот...

Программное изменение, добавление, удаление атрибутов у свойств класса
Собственно и интересует вопрос как программно изменить, добавить, удалить атрибуты у свойств класса???

Отображение навигационных свойств
Добрый день, приложение у меня Windows Forms. Сущности создал используя EF Power Tools Reverse Engineer Code First. База выглядит так: ...

4
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
25.01.2010, 02:49
Во-первых System.Drawing.Point является sealed, наследовать при всем желании не получится,
во-вторых вы, возможно, путаете слова
Цитата Сообщение от ELEKTRIK Посмотреть сообщение
наследуемый от визуального
что за визуальный класс?
Цитата Сообщение от ELEKTRIK Посмотреть сообщение
в качестве атрибута другой собственный класс
эти атрибуты ?

Опишите конкретно, что нужно
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
25.01.2010, 09:01
Point - структура, а они поддерживают прямое наследование только от интерфейсов. Создать потомков от них нельзя.

Подозреваю, что визуальный класс это потомок Control, который инкапсулирует в себе ваш класс, свойства которого при визуальном проектирование в панели Свойства и не отображаются.
Если догадки верны то можно попробовать так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// "визуальный" класс
public class MyButton : Button
    {
        MyClassForButton insideClass;
 
        public MyButton()
        { insideClass = new MyClassForButton(); }
 
        public string MyString
        {
            get { return this.insideClass.CustomString; }
            set { this.insideClass.CustomString = value; }
        }
    }
//ваш класс
    class MyClassForButton
    {
        private string myCustomString;
        public string CustomString
        {
            get { return myCustomString; }
            set { myCustomString = value; }
        }
    }
проект скомпилируйте и добавте на форму MyButton. Это конешно если догадки верны.
0
1 / 1 / 1
Регистрация: 24.01.2010
Сообщений: 3
25.01.2010, 16:55  [ТС]
Я извиняюсь за столь расплывчатый вопрос, раньше ни когда не общался на тему программирования.

Суть вопроса _Art_ все же уловил но, к сожалению ответ меня не удовлетворил.
В моем классе 6 свойств, а потомков от Button, Label и т.д. еще больше и мысль о том, что в каждом надо прописывать get и set меня не радует.
Также мне может потом понадобиться добавить одно или несколько свойств, икать и дополнять каждый класс тоже неприятно.
А структуру Point я приводил в качестве примера. Скажем если ее использовать таким способом, то все отображается нормально.

C#
1
2
3
4
5
6
7
8
9
10
11
12
// "визуальный" класс
public class MyButton : Button
    {
        Private Point _MyPoint;
 
 
        public Point MyPoint
        {
            get { return _MyPoint; }
            set { _MyPoint = value; }
        }
    }
А если я использую свой класс то ни чего не отображается.
0
118 / 119 / 20
Регистрация: 21.01.2010
Сообщений: 252
27.01.2010, 14:31
Опять не все ясно. Ваш класс расширяет функциональность контролов? Если да то нужно создавать класс наследуемый от System.ComponentModel.Component и от System.ComponentModel.IExtenderProvider, а потом реализовывать функцию интерфейса и добавлять функциональность. Таким образом у вас получится Расширитель Функциональности, как например ToolTip. Веселье еще то, поэтому рекомендую читать литературку например эту книгу

"Коннелл Джон Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET" автор подробно там все рассматривает, но на VB.NET.

Про Point: Студия знает как его конвертировать в текстовое представление в панели Свойства, а про ваш клас, она не знает.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.01.2010, 14:31
Помогаю со студенческими работами здесь

Визуальное отображение свойств класса
Добрый день. Как просто добавить в форму св-во своего класса. К примеру, есть класс public User { public strinh Name ...

DataGrid. Отображение свойств по категориям
Приветствую.Такая проблема. Есть два DataGrid'а. Есть класс объекта у которого есть свойство(класса) имя и список имен его...

Использование нового формата свойств
Здравствуйте! Не удается найти примеров по более широкому использованию свойств, где можно сразу выполнить больше функций, чем базовые...

Получить список свойств класса
Добрый вечер, Необходимо получить список свойств класса и записать его в массив/список. using System; using System.Reflection; ...

Инициализаця свойств класса через reflection
Добрых времени суток. Есть класс в котором 14 свойств двух типов: int и string. Чтобы не инициализировать их вручную, решил воспользоваться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru