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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсвойства в C#, Как правильно реализовать 
V
    Опции темы
andzej1
Дата 8.2.2006, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Скажите, народ, кто ни будь знает как реализовать подсвойства в С#, так что бы их можно было в режиме Design редактировать в окне Properties так как это сделано во всех (почти) стандартных компонентах, к примеру, свойство Size, а внем свойства Height и Width.

Как можно сделать свои такие же подсвойства? (Мне тоже нужны integer-ы)
PM MAIL   Вверх
mr.DUDA
Дата 8.2.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Да, вопрос явно не простой.
Что по этому поводу пишет MSDN ?


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


Новичок



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

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



В MSDN-е нашел как создавать класс свойств

Код

// The Address class.
public class Address {
    private string street = null;
    private string city = null;
    private string state = null;
    private string zip = null;

    // The Street property.
    public string Street {get{...} set{...}} 

    // The City property.
    public string City {get{...} set{...}}
     
    // The State property.
    public string State {get{...} set{...}}

    // The Zip property.
    public string Zip {get{...} set{...}}
}


Вроде бы все логично, но в окне Properties свойство редактировать нельзя, отображается только название класа.
PM MAIL   Вверх
Exception
Дата 8.2.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Такое не пройдет?
Код

using System.ComponentModel;
class MyComponent
{
//...
[Category("Size")]
int Height{}
[Category("Size")]
int Width{}
}

?
PM   Вверх
mr.DUDA
Дата 8.2.2006, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Можно попробовать вложить один компонент в другой.

Цитата(Exception @ 8.2.2006, 21:55 Найти цитируемый пост)
Такое не пройдет?

Из этого получится только то, что св-ва класса будут в отдельной категории, но подсвойства так не вывести, имхо


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


Эксперт
****


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

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



Я надеюсь, ты не дословно этот пример компилишь smile ?
Надо заменить фсякие
Код
int Height{}
на
Код
private int height;
int Height{
get{return height;}
set{height = value;}
}
, надеюсь, это понятно.
Добавлено @ 23:04
Это был пост не тебе, дуда smile
Попробуй, порефлекторь System.Windows.Forms, может, что всплывет?
PM   Вверх
-ser-
Дата 10.2.2006, 06:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



раз начали гадать, то предлагаю почитать статейку в двух частях

http://www.codeproject.com/csharp/propertyeditor.asp

и продолжение

http://www.codeproject.com/csharp/customdesigner.asp



--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
andzej1
Дата 13.2.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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


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

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


 




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


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

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