Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2013, 09:59   #1
kostef
 
Регистрация: 04.04.2013
Сообщений: 6
По умолчанию Отображение свойств объектов в PropertyGrid

Здравствуйте!!! Недавно начал изучать C# и наткнулся на проблему с отображением свойств геометрических фигур.
Собственно имеется класс родитель Shape и от него производятся классы типа геометрических фтгур(треугольник , многоугольник , и т.д). Так вот как сделать так чтоб в PropertyGrid можно было выбрать(combobox например) один из этих объектов и отобразит только его свойство в зависимости от выбора пользователя
kostef вне форума Ответить с цитированием
Старый 04.04.2013, 10:10   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

собственно а в чем вопрос то? берите и отображайте
eval вне форума Ответить с цитированием
Старый 04.04.2013, 10:26   #3
kostef
 
Регистрация: 04.04.2013
Сообщений: 6
По умолчанию

Собственно вопрос в том как создать в проперти список этих самых объектов для выбора
kostef вне форума Ответить с цитированием
Старый 04.04.2013, 10:28   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
как создать в проперти
В каком проперти?
eval вне форума Ответить с цитированием
Старый 04.04.2013, 10:32   #5
kostef
 
Регистрация: 04.04.2013
Сообщений: 6
По умолчанию

PropertyGrid propertyGrid1
kostef вне форума Ответить с цитированием
Старый 04.04.2013, 10:48   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ничего не понятно
в комбобокс список можно создать 1000 и 1 способом, как загнать в PropertyGrid объект очень прекрасно показанно и расказано в справке
можете пояснить внятно, что у вас не получается?
eval вне форума Ответить с цитированием
Старый 04.04.2013, 12:46   #7
kostef
 
Регистрация: 04.04.2013
Сообщений: 6
По умолчанию

в propertyGrid1 имеется поле с названиями геометрических фигур
1 как сделать это поле в виде раскрывающегося списка чтобы выбрать нужную пользователю
2 как отобразить свойства только выбранной фигуры(например многоугольник: количество углов, координаты центра, при этом допустим в окружности нет углов)
kostef вне форума Ответить с цитированием
Старый 04.04.2013, 13:20   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

это вам надо typeconverter сооружать, в интернете примеров много
eval вне форума Ответить с цитированием
Старый 04.04.2013, 13:36   #9
kostef
 
Регистрация: 04.04.2013
Сообщений: 6
По умолчанию

соорудил: вернее скопировал , не нашел пояяснений того что здесь происходит
В виде раскрывающегося списка начало отображаться но вот свойства все равно не показывает
class ConverterShape : EnumConverter
{
private Type _enumType;
/// <summary>Инициализирует экземпляр</summary>
/// <param name="type">тип Enum</param>
public ConverterShape(Type type)
: base(type)
{
_enumType = type;
}

public override bool CanConvertTo(ITypeDescriptorContext context,
Type destType)
{
return destType == typeof(string);
}

public override object ConvertTo(ITypeDescriptorContext context,
CultureInfo culture,
object value, Type destType)
{
FieldInfo fi = _enumType.GetField(Enum.GetName(_en umType, value));
DescriptionAttribute dna =
(DescriptionAttribute)Attribute.Get CustomAttribute(
fi, typeof(DescriptionAttribute));

if (dna != null)
return dna.Description;
else
return value.ToString();
}

public override bool CanConvertFrom(ITypeDescriptorConte xt context,
Type srcType)
{
return srcType == typeof(string);
}

public override object ConvertFrom(ITypeDescriptorContext context,
CultureInfo culture,
object value)
{
foreach (FieldInfo fi in _enumType.GetFields())
{
DescriptionAttribute dna =
(DescriptionAttribute)Attribute.Get CustomAttribute(
fi, typeof(DescriptionAttribute));

if ((dna != null) && ((string)value == dna.Description))
return Enum.Parse(_enumType, fi.Name);
}

return Enum.Parse(_enumType, (string)value);
}

}
}
kostef вне форума Ответить с цитированием
Старый 08.04.2013, 13:19   #10
kostef
 
Регистрация: 04.04.2013
Сообщений: 6
По умолчанию

typeconverter надо для каждого класса сооружать или только для родительского
kostef вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ListView Загрузка списка объектов. Отображение KBI ASP.NET 0 10.09.2012 19:57
PropertyGrid f.hump Общие вопросы .NET 0 15.02.2012 17:17
Отображение только видимых частей объектов Sargonass Gamedev - cоздание игр: Unity, OpenGL, DirectX 8 04.01.2012 09:52
Редактирование свойств объектов blacklight Microsoft Office Excel 5 12.08.2009 19:26
Microsoft Office Outlook : Список свойств объектов olMailItem, olTaskItem Jenya Софт 1 15.02.2008 14:58