我想從公共屬性(LogQry)的Set-procedure中更改按鈕(cmdLogQry)的背景顏色 - 根據新物業的價值。vb.net-如何從另一個模塊更改表單元素的屬性
如果屬性在代碼belongsig中更改爲包含按鈕的窗體(在同一個或甚至另一個按鈕的Click方法中),它將起作用。但是,如果屬性正在從另一個模塊(COM端口DataReceived事件的處理程序)進行更改,則它不起作用。沒有錯誤信息或任何東西 - LogQry的值改變了,但按鈕的顏色沒有改變。
我該怎麼做?
Public Class Handler
Private _logQry As Boolean = False
Public Property LogQry() As Boolean
Get
Return _logQry
End Get
Set(ByVal value As Boolean)
_logQry = value
If value Then
frmMain.cmdLogQry.BackColor = Color.Red
Else
frmMain.cmdLogQry.BackColor = Color.Blue
End If
End Set
End Property
Private Sub comPort_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
...
LogQry = Not LogQry ' does NOT change color
...
End Sub
End Class
Public Class frmMain
Private comm As New Handler()
...
Private Sub cmdLogQry_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdLogQry.Click
comm.LogQry = Not comm.LogQry ' does change color
End Sub
...
End Class
設置斷點並查看是否正在調用事件 – Plutonix 2015-02-06 14:25:45