Re[2]: UserControl значение по-умолчанию для свойства Text
От: maximkharitonov  
Дата: 08.02.10 15:35
Оценка: 16 (1)
Здравствуйте, Yuri, Вы писали:

Y>Здравствуйте, maximkharitonov, Вы писали:


Y>дизайнер проставил, думаю

Y>в дизанере же и убрать

Да, спасибо, насчет дизайнера уже нашел. Сделал следующий рабочий вариант дизайнера:

        public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
        {
            PropertyDescriptor textPropDesc = TypeDescriptor.GetProperties(Component)["Text"];

            if (textPropDesc != null &&
                textPropDesc.PropertyType == typeof(string) &&
                !textPropDesc.IsReadOnly &&
                textPropDesc.IsBrowsable)
            {
                textPropDesc.SetValue(Component, "");
            }
        }


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

        public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
        {
            if (defaultValues.Contains("Text"))
                defaultValues["Text"] = "";
            else
                defaultValues.Add("Text", "");
            
            base.InitializeNewComponent(defaultValues);
        }


Может есть предположения почему последний вариант не работает?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.