7

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

当我继承该表单时,无法DataGridView在 Visual Studio 设计器中更改。如果我用 a 完成整个事情Button,它会按预期工作。

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

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

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

并来自 Inherited.cs:

partial class Inherited : DatagridForm {

}
4

1 回答 1

9

这个博客有解决方案:只需创建一个指向正确设计器内容的继承用户控件:

[Designer(typeof(System.Windows.Forms.Design.ControlDesigner))]
public class ucInheritedDataGridView : DataGridView { }

奇迹般有效。唯一的缺点是您不能使用 .NET 客户端配置文件,因为它不支持 System.Forms.Design(您必须添加System.Design作为参考)。这应该不是太大的问题,因为客户端配置文件无论如何都已被弃用 4.5

如果您确实需要客户端配置文件,另一种解决方法是将其包装DataGridView在 aPanel中,您可以移动和调整其大小。

于 2013-02-26T13:16:13.503 回答