Vb.net .NET Designer在继承的控件中以只读方式发布阴影属性

Vb.net .NET Designer在继承的控件中以只读方式发布阴影属性,vb.net,winforms,controls,overriding,Vb.net,Winforms,Controls,Overriding,我正在尝试创建自定义控件,以便为应用程序的设计提供一些一致性。然而,当我使用只读替代变量对属性进行阴影处理时,在构建时会出现设计器错误。现在我可以删除设计器文件中有问题的代码行并继续构建和运行我的应用程序,但首先这很烦人,其次它告诉我我一定是做错了什么 下面是一个覆盖datagridview的控件示例 Class standardDataGridView Inherits DataGridView Public Sub New() MyBase.New() Me.RowHead

我正在尝试创建自定义控件,以便为应用程序的设计提供一些一致性。然而,当我使用只读替代变量对属性进行阴影处理时,在构建时会出现设计器错误。现在我可以删除设计器文件中有问题的代码行并继续构建和运行我的应用程序,但首先这很烦人,其次它告诉我我一定是做错了什么

下面是一个覆盖datagridview的控件示例

Class standardDataGridView
Inherits DataGridView

Public Sub New()
    MyBase.New()
    Me.RowHeadersVisible = False
    MyBase.SelectionMode = DataGridViewSelectionMode.FullRowSelect
    MyBase.MultiSelect = False
    Me.ReadOnly = True
    Me.BackgroundColor = Color.White
    Me.AllowUserToDeleteRows = False
    Me.AllowUserToResizeRows = False
    Me.AllowUserToAddRows = False
End Sub

Public Shadows ReadOnly Property SelectionMode As DataGridViewSelectionMode
    Get
        Return MyBase.SelectionMode
    End Get
End Property

Public Shadows ReadOnly Property MultiSelect As Boolean
    Get
        Return MyBase.MultiSelect
    End Get
End Property

End Class
在将其中一个控件添加到窗体或更改任何属性后的第一次生成中,Visual Studio会将以下行添加到设计器文件中:

Me.standardDataGridView1.MultiSelect = False
Me.standardDataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
这将导致以下生成错误

Property 'MultiSelect' is 'ReadOnly'.
Property 'SelectionMode' is 'ReadOnly'

正如我所说。。。我可以删除Visual Stuido添加的行,然后继续,但我哪里出了问题,出现了这个问题?

尝试告诉表单设计器不要序列化这些属性:

Imports System.ComponentModel

<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
Public Shadows ReadOnly Property SelectionMode As DataGridViewSelectionMode
  Get
    Return MyBase.SelectionMode
  End Get
End Property

<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
Public Shadows ReadOnly Property MultiSelect As Boolean
  Get
    Return MyBase.MultiSelect
  End Get
End Property
导入System.ComponentModel
_
公共阴影只读属性SelectionMode作为DataGridViewSelectionMode
得到
返回MyBase.SelectionMode
结束
端属性
_
公共阴影只读属性MultiSelect为布尔值
得到
返回MyBase.MultiSelect
结束
端属性
确保重建您的解决方案