我正在研究VB.Net应用程序。我需要创建一个名为signalIO的UserControl,它带有TextBox和Label,有一些属性可以改变TextBox和Label的内容,更改BackColor等。
当我将signalIO添加到我的应用程序的窗体中时,signalIO控件正常工作。如果我将参数StatusSignal从False更改为True,我可以看到文本框的背景颜色变为控制从红色变为绿色,如果我更改了信号的名称,我可以看到标签中的文本已正确更改。
但如果我继续调试应用程序,我就看不到属性的Set方法之后的更改。
这是我用过的代码:
Imports System.ComponentModel
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.ComponentModel.Design
Imports System.Windows.Forms
<Designer("System.Windows.Forms.Design.ParentControlDesigner,System.Design", GetType(IDesigner))> _
Public Class controlIO
Inherits UserControl
Private status As Boolean
Private ID As Integer = 0
Private label As String
Public Property labelSignal As String
Get
Return labelIO.Text
End Get
Set(value As String)
label = value
labelIO.Text = label
updateControl()
Invalidate()
End Set
End Property
Private Sub updateControl()
Me.Refresh()
boxIO.Refresh()
labelIO.Refresh()
End Sub
Public Property statusSignal As Boolean
Get
Return status
End Get
Set(value As Boolean)
status = value
If status Then boxIO.BackColor = Color.Green Else boxIO.BackColor = Color.Red
updateControl()
Invalidate()
End Set
End Property
Public Property signalIO As Integer
Get
Return ID
End Get
Set(value As Integer)
ID = value
boxIO.Text = CStr(ID)
updateControl()
Invalidate()
End Set
End Property
End Class
我无法理解为什么如果我更改属性statusSignal,例如,我可以看到boxIO的颜色更改为应用程序的FormDesigner,但在执行应用程序时没有更改。
我希望你能理解我的问题。