无法以继承的形式直观地更改DataGridView

时间:2013-02-26 12:35:29

标签: c# winforms visual-studio-2010 inheritance

我有一个WinForms表单,上面有DataGridViewDataGridView设置为protected

当我继承该表单时,无法更改Visual Studio设计器中的DataGridView。如果我使用Button执行整个操作,则按预期工作。

有没有办法解决这个问题?

一些(剪切的)代码(来自DatagridForm.Designer.cs):

partial class DatagridForm {
    protected DataGridView dgData;
    protected Button button;
}

和Inherited.cs:

partial class Inherited : DatagridForm {

}

1 个答案:

答案 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中,您可以移动并调整其大小。