设计器中无法编辑继承的属性

时间:2010-12-29 20:33:55

标签: .net vb.net inheritance windows-forms-designer

我有一个基本表单类,它提供了一个看起来像这样的新属性

Public Class BaseForm

    Private _HappyTime As Boolean

    Public Property HappyTime() As Boolean
        Get
            Return _HappyTime
        End Get
        Set(ByVal value As Boolean)
            _HappyTime = Value
        End Set
    End Property

End Class

<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class BaseForm
    Inherits System.Windows.Forms.Form

    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    End Sub

    Private components As System.ComponentModel.IContainer

    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.Text = "BaseForm"
    End Sub
End Class

现在,当我在新表单上继承BaseForm时,HappyTime属性在属性窗口中显示为false,并且是不可编辑的。

我在一个全新的解决方案中重新创建了这个BaseForm和Inheriting Form,并且HappyTime属性是可编辑的并且按预期工作。由于某些原因,在现有项目中(需要进行这些更改),它的行为不正确。

这让我相信它与我的项目配置有关。除了创建一个新项目并将所有代码移入其中之外,是否有人对此有任何见解?

环境信息: .Net Framework 3.5,Visual Studio 2010,Win7 x64

1 个答案:

答案 0 :(得分:1)

在重新创建的解决方案中,_HappyTime属性是私有还是受保护?我认为,如果您只是将其更改为此解决方案中的受保护,它将起作用。