2010-01-09 3 views
1

к любому ... Всем,PropertyGrid, DefaultValue, Неизвестные цвета

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

Цвет не являются системными цветами, ни «Known "цвета ...

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

209, 175, 171 

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

Я пробовал:

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

Нет удачи до сих пор ...

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

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

Carson

ответ

2

Я просто попытался это в Приложение 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 http://i48.tinypic.com/2ch3yx4.png

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

alt text http://i49.tinypic.com/j8zeir.png

+0

Это странно ... Когда вы включаете лишнее пространство после первых t в строке, в которой она работает .... Другими словами, это работает: [DefaultValue (typeof (Color), «209, 175, 171»)] Я бы никогда не понял это за миллион лет и пошел и сделал пользовательский конвертер, чтобы справиться с этим .... Это не: [DefaultValue (TypeOf (цвет), "209, 175, 171")] Я понятия не имею, почему и я не очень волнует ... Вы ответили и решить мою проблему Приветствия –

+0

Я новичок здесь. Как я могу отследить ваш ответ в качестве ответа? –

+0

Можете ли вы попробовать это для Color.Black (0,0,0) ... он не работает, когда вы устанавливаете значение по умолчанию следующим образом: [DefaultValue (typeof (Цвет), «0, 0, 0») ] .... niether делает это: [DefaultValue (typeof (Цвет), «Черный»)] ..... Я думаю, что это связано с тем, что Black - это «Известный» цвет ... просто догадка –

0

Такая же проблема здесь. DefaultValue (TypeOf (цвет) не работает для меня

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

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

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

Смежные вопросы