PropertyGrid, DefaultValue, неизвестные цвета - PullRequest
1 голос
/ 10 января 2010

Для любого ... Для всех,

Моя сетка свойств проверяет класс, имеющий несколько цветовых свойств ...

Цвета не являются системными или «известными» цветами ...

При отображении цветов текстовое значение в сетке может выглядеть следующим образом:

209, 175, 171

Как определить [Атрибут] Свойство, чтобы при выборе этого цвета PropertyGrid понимал, что выбран цвет по умолчанию?

Я пытался:

[DefaultValue(typeof(Color),"209 , 175, 171")]
[DefaultValue(typeof(Color),"209,175,171")]

Пока не повезло ...

Спасибо за любую помощь ...

Этот сайт потрясающий ... он помог мне больше, чем любой другой сайт, когда я тащусь через этот проект ...

Carson

Ответы [ 2 ]

2 голосов
/ 10 января 2010

Я только что попробовал это в приложении Windows Forms, и оно отлично работает. Вот мое приложение:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e) {
        propertyGrid1.SelectedObject = new Foo();
    }
}

public class Foo {
    [DefaultValue("foo")]
    public string MyString { get; set; }

    [DefaultValue(typeof(Color), "209 , 175, 171")]
    public Color MyColor { get; set; }
}

И моя форма является формой по умолчанию с элементом управления PropertyGrid.

Когда цвет установлен на 209,175,171, он отображается в обычном тексте. Если я изменю любое значение, оно будет выделено жирным шрифтом. Точно так же, когда для строки задан любой текст, она выделяется жирным шрифтом, а когда я задаю для нее значение «foo», она отображается в обычном тексте.

со значениями не по умолчанию:

alt text

со значениями по умолчанию:

alt text

0 голосов
/ 04 февраля 2016

Та же проблема здесь. DefaultValue (typeof (Color) у меня не работает.

Я должен сделать это:

private void Form1_Load(object sender, EventArgs e)
    {
        MyCar car1 = new MyCar();
        this.propertyGrid1.SelectedObject = car1;
    }

    public class MyCar{
        //*****************************
        private Color MyColor_ = Color.Red;//<------------------------ Here
        //*****************************
        public Color MyColor
        {
            get { return MyColor_; }
            set { this.MyColor_ = value; }
        }

        private String Id_;
        public String Id
        {
            get { return Id_; }
            set { this.Id_ = value; }
        }

    }

enter image description here

Это работает для меня, я не знаю, где именно проблема.

...