我有一个WinForms表单,上面有DataGridView
。 DataGridView
设置为protected
。
当我继承该表单时,无法更改Visual Studio设计器中的DataGridView
。如果我使用Button
执行整个操作,则按预期工作。
有没有办法解决这个问题?
一些(剪切的)代码(来自DatagridForm.Designer.cs):
partial class DatagridForm {
protected DataGridView dgData;
protected Button button;
}
和Inherited.cs:
partial class Inherited : DatagridForm {
}
答案 0 :(得分:7)
这个blog有解决方案:只需创建一个指向正确设计师内容的继承用户控件:
[Designer(typeof(System.Windows.Forms.Design.ControlDesigner))]
public class ucInheritedDataGridView : DataGridView { }
像魅力一样工作。唯一的缺点是您无法使用.NET客户端配置文件,因为它不支持System.Forms.Design(您必须添加System.Design
作为参考)。这不应该是一个太大的问题,因为客户端配置文件是deprecated anyway per 4.5。
如果您确实需要客户端个人资料,另一种方法是将DataGridView
包裹在Panel
中,您可以移动并调整其大小。