我有一个基本表单类,它提供了一个看起来像这样的新属性
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
答案 0 :(得分:1)
在重新创建的解决方案中,_HappyTime属性是私有还是受保护?我认为,如果您只是将其更改为此解决方案中的受保护,它将起作用。