アプリケーションの設計にある程度の一貫性を持たせるために、カスタム コントロールを作成しようとしています。ただし、読み取り専用の代替手段でプロパティをシャドウすると、ビルド時にデザイナー エラーが発生します。これで、デザイナー ファイル内の問題のあるコード行を削除し、アプリケーションのビルドと実行を続けることができますが、まずこれがいらいらします。
以下は、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 が追加した行を削除して続行することはできますが、どこでこの問題が発生したのでしょうか?