如何更改继承控件中的默认值,同时允许使用实例的设计器重置它们的值
本文关键字:实例 许使用 控件 继承 何更改 默认值 | 更新日期: 2023-09-27 17:50:40
考虑以下场景:
- 创建新的自定义控件继承自
DataGridView
命名为MyDataGridView
。 - 打开
MyDataGridView
设计器 - 更改
MyDataGridView
自定义控件的AllowUserToAddRows
属性为false
。 - 使用
MyDataGridView
实例的形式 - 将
MyDataGridView
实例的AllowUserToAddRows
属性更改为true
我期望发生的是:我的实例应该允许用户添加行。它不是。当我运行build时,实例的属性被重置为MyDataGridView
定义中设置的值。
所以我显然做错了。怎样才能做对呢?
我希望MyDataGridView
有一组不同于标准DataGridView
的属性默认值,但这些属性应该在应用程序的设计器中保持可编辑。实现这一目标最直接的方法是什么?
好吧,有一种方法可以做到这一点,但它很糟糕!我还在寻找一个更简单的方法:
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; } }
}
}