To Any ... To All,
我的属性网格正在检查具有多个颜色属性的类......
颜色不是系统颜色,也不是'已知'颜色......
显示颜色时,网格中的文本值可能如下所示:
209, 175, 171
如何定义[属性]属性,以便在选择此颜色时,PropertyGrid可以理解已选择默认颜色?
我试过了:
[DefaultValue(typeof(Color),"209 , 175, 171")]
[DefaultValue(typeof(Color),"209,175,171")]
到目前为止没有运气......
感谢您的帮助......
这个网站摇滚......当我跋涉这个项目时,它比任何其他网站都帮助了我......
卡森
答案 0 :(得分:2)
我刚刚在Windows窗体应用程序中尝试了这个,它运行正常。这是我的整个应用程序:
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”时,它以正常文本显示。
使用非默认值:
使用默认值:
答案 1 :(得分:0)
这里的问题相同。 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; }
}
}
它对我有用,我不知道问题究竟在哪里。