C#属性网格
问题描述:
我正在编写一个应用程序,它允许用户更改文本框或标签的属性,这些控件是用户控件。为每个用户控件创建一个单独的类,实现我希望它们能够更改的属性,然后将这些属性绑定回用户控件,最简单吗?还是有另一种我忽略的方法?C#属性网格
答
创建一个自定义属性,并用这个属性标记用户想要编辑的属性。然后在属性网格的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;
}
}
}
我明白了,我给这个一杆。非常感谢。 – Nathan 2009-10-29 15:20:54
菲利普在这里是一个不同的过程吗? http://www.c-sharpcorner.com/UploadFile/mgold/PropertyGridInCSharp11302005004139AM/PropertyGridInCSharp.aspx 此外,如果您知道如何添加组合框到属性网格? – Nathan 2009-10-29 21:31:45
看看这篇文章: http://www.codeproject.com/KB/tabs/PropertyGridValidation.aspx – 2009-10-30 12:34:14