如何更改继承控件中的默认值,但允许使用实例设计器重置其值?

时间:2014-03-17 12:32:38

标签: c# .net winforms user-controls

请考虑以下情况:

  1. 创建从名为DataGridView的{​​{1}}继承的新自定义控件。
  2. 在设计师中打开MyDataGridView
  3. MyDataGridView自定义控件的AllowUserToAddRows属性更改为MyDataGridView
  4. 在表单中使用false实例。
  5. MyDataGridView个实例的AllowUserToAddRows属性更改为MyDataGridView
  6. 我期望会发生什么:我的实例应该允许用户添加行。它没有。我运行构建时,实例的属性将重置为true定义中设置的值。

    所以我显然做错了。怎么做对了?

    我希望MyDataGridView为属性设置一组不同于标准MyDataGridView的默认值,但这些属性应该仍然可以在应用程序的设计器中编辑。实现这一目标最直接的意思是什么?

    Example

1 个答案:

答案 0 :(得分:0)

好的,这是实现这一目标的一种方式,但这太可怕了!我还在寻找一种更简单的方法:

using System.ComponentModel;
using System.Windows.Forms;

namespace Test {
    public partial class MyDataGridView : DataGridView {

        bool _AllowUserToAddRows;
        [Category("Behavior")]
        [Description("Value indicating whether the option to add rows is displayed to the user")]
        [DefaultValue(false)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public new bool AllowUserToAddRows {
            get { return _AllowUserToAddRows; }
            set { base.AllowUserToAddRows = _AllowUserToAddRows = value; } }

    }
}