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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с конвертером типов 
V
    Опции темы
Freak_FB
  Дата 20.8.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


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

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



Вот, написал свой конвертер типов для типа Координаты+Время (по книжке делаю, только та на бейсик ориентирована).
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.ComponentModel;
using System.Windows.Forms;

namespace PropertyExamples
{
    [Serializable()]
    public class Coords
    {
        private int _X = 0;
        private int _Y = 0;
        private int _Z = 0;
        private DateTime _Time;

        public Coords()
        {
        }

        [Description("Horizontal angle of the blast")]
        public int X
        {
            get
            {
                return _X;
            }
            set
            {
                _X = value;
            }
        }

        [Description("Vertical angle of the blast")]
        public int Y
        {
            get
            {
                return _Y;
            }
            set
            {
                _Y = value;
            }
        }

        [Description("Cylindrical angle of the blast")]
        public int Z
        {
            get
            {
                return _Z;
            }
            set
            {
                _Z = value;
            }
        }

        [Description("Time dimension of the blast")]
        public DateTime Time
        {
            get
            {
                return _Time;
            }
            set
            {
                _Time = value;
            }
        }
        public override string ToString()
        {
            return "(Coords)";
        }
    }

    public class CoordsConverter : TypeConverter
    {
        public override bool GetPropertiesSupported(ITypeDescriptorContext context)
        {
            return true;
        }

        public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
        {
            if (sourceType.Equals(typeof(string)))
                return true;
            else
                MessageBox.Show("Can not convert from " + sourceType.ToString());

            return base.CanConvertFrom(context, sourceType);
        }

        public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)
        {
            if (destinationType.Equals(typeof(string)))
                return true;
            else
                MessageBox.Show("Can not convert to " + destinationType.ToString());

            return base.CanConvertTo(context, destinationType);
        }
    }
}

Вот это мой код. Проблема в том, что свойство на форме отображается с плюсиком, но когда я его хочу раскрыть, то плюсик исчезает, и ничего не отображается.
Вот так описано свойство в другом классе:
Код

[Category("Sighting information"), Description("Relative distance to target")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[TypeConverter(typeof(CoordsConverter))]
public Coords FourDimensions
{
    get
    {
        return _Coords;
    }
    set
    {
        _Coords = value;
    }
}

Подскажите, где ошибка

Это сообщение отредактировал(а) Freak_FB - 21.8.2007, 18:04


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
tol05
Дата 22.8.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



а ConvertFrom() и ConvertTo() реализовывать уже не принято? 
посмотри здесь пример


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Freak_FB
Дата 23.8.2007, 12:16 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


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

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



Насчёт ConvertFrom и ConvertTo не знаю. Делал по книжке Коннелл Джон, Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET). Разве нужны эти функции, если я просто раскрываю свойства, тип которых дизайнер сам должен знать, как отобразить?
А за класс ExpandableObjectConverter я даже не слышал, буду пробовать.


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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