PropertyGrid、默认值、未知颜色

发布于 2024-08-17 07:05:26 字数 448 浏览 4 评论 0 原文

对于任何...对于全部,

我的属性网格正在检查具有多个颜色属性的类...

颜色不是系统颜色,也不是“已知”颜色...

显示颜色时,网格中的文本值可能看起来像像这样:

209, 175, 171

如何定义 [Attribute] 属性,以便在选择此颜色时,PropertyGrid 知道已选择默认颜色?

我已经尝试过:

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

到目前为止没有运气...

感谢您的帮助...

这个网站很棒...当我艰难地完成这个项目时,它比任何其他网站对我的帮助都更大...

卡森

To Any...To All,

My property grid is inspecting a class that has several color properties...

The colors are not system colors, nor 'Known' colors...

When displaying the colors the text value in the grid might look like this:

209, 175, 171

How do I define [Attribute] the Property so that when this color is chosen, the PropertyGrid understands that the default color has been chosen?

I have tried:

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

No luck so far...

Thanks for any help...

This site rocks...it has helped me more than any other site as I trudge through this project...

Carson

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

oО清风挽发oО 2024-08-24 07:05:26

我刚刚在 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”时,它会以普通文本显示。

使用非默认值:

使用默认值:

“替代文本”

I just tried this in a Windows Forms app and it works fine. Here is my entire app:

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; }
}

And my form is a default form with a PropertyGrid control on it.

When the color is set to 209,175,171 it shows in normal text. If I change any value it shows up as bold. Similarly, when the string is set to any text it's bold and when I set it to "foo" then it shows in normal text.

With non-default values:

alt text

With default values:

alt text

梦在深巷 2024-08-24 07:05:26

这里同样的问题。 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; }
        }

    }

在此处输入图像描述

它对我有用,我不知道问题到底出在哪里。

Same problem here. DefaultValue(typeof(Color) is not working for me.

I have to do this:

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

It works for me, I don't know where is the problem exactly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文