本来想着用一个抽象的用户控件类把公共功能提取出来,这样能方便使用继承于它的控件,但发觉继承控件是无法使用设计器的,可见VS设计器会对控件进行构造,而抽象类是无法实例化的。原来的基类设计以下:
public partial class OneDataBaseUC : UserControl { public OneDataBaseUC() { InitializeComponent(); } public abstract bool CanEdit { get; set; } public abstract void Init(); public abstract void SaveValue(string outKeyID); public abstract void DeleteValue(string outKeyID); public abstract void ClearControlValue(); public abstract string ModuleName { get; set; } public abstract void ShowValue(string outKeyID); }
继承控件如下
public partial class BasicUserRolesUC : OneDataBaseUC { public BasicUserRolesUC() { InitializeComponent(); } }
结果设计器打开BasicUserRolesUC会报错,可见OneDataBaseUC不能是抽象的,当然如果不需要设计器设计是没问题的
原文地址:http://wfy4422.blog.51cto.com/6049188/1685883