【问题标题】:C# Property GridC# 属性网格
【发布时间】:2023-03-09 21:17:01
【问题描述】:

我正在编写一个应用程序,它允许用户更改文本框或标签的属性,这些控件是用户控件。为每个用户控件创建一个单独的类来实现我希望他们能够更改的属性然后将它们绑定回用户控件是最简单的吗?还是我忽略了另一种方法?

【问题讨论】:

    标签: c# properties grid propertygrid


    【解决方案1】:

    创建自定义属性,并使用此属性标记您希望用户编辑的属性。然后将属性网格上的BrowsableAttribute 属性设置为仅包含您的自定义属性的集合:

    public class MyForm : Form
    {
        private PropertyGrid _grid = new PropertyGrid();
    
        public MyForm()
        {
            this._grid.BrowsableAttributes = new AttributeCollection(new UserEditableAttribute());
            this._grid.SelectedObject = new MyControl();
        }
    }
    
    public class UserEditableAttribute : Attribute
    {
    
    }
    
    public class MyControl : UserControl
    {
        private Label _label = new Label();
        private TextBox _textBox = new TextBox();
    
        [UserEditable]
        public string Label
        {
            get
            {
                return this._label.Text;
            }
            set
            {
                this._label.Text = value;
            }
        }
    
        [UserEditable]
        public string Value
        {
            get
            {
                return this._textBox.Text;
            }
            set
            {
                this._textBox.Text = value;
            }
        }
    }
    

    【讨论】:

    • 啊,我明白了,我会试一试。非常感谢。
    • Philip 这是一个与这里不同的过程吗? c-sharpcorner.com/UploadFile/mgold/… 另外,如果您知道如何在属性网格中添加组合框?
    • 你愿意给我发一封电子邮件到severwxchaser_83@yahoo.com,这样我就可以知道你的电子邮件地址了吗?我想再问几个问题,电子邮件比这更容易。
    • 在这里问他们,那么至少 SO 的其余部分可以为答案做出贡献/受益。
    猜你喜欢
    • 1970-01-01
    • 2010-12-12
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    相关资源
    最近更新 更多