سؤال

وأنا أكتب التطبيق الذي سوف يسمح للمستخدمين لتغيير خصائص مربع النص أو التسمية وهذه الضوابط ضوابط المستخدم. سيكون من الأسهل لإنشاء فئة منفصلة لكل عنصر تحكم المستخدم الذي ينفذ خصائص أريد لها أن تكون قادرة على تغيير ومن ثم ربط تلك العودة إلى عنصر تحكم المستخدم؟ أم أن هناك طريقة أخرى أنا المطل؟

هل كانت مفيدة؟

المحلول

إنشاء سمة مخصصة، وعلامة الخصائص التي تريد للمستخدم لتحرير مع هذه السمة. ثم قم بتعيين الخاصية 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;
        }
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top