我正在學習vb.net,並且遇到了搜索需要的問題。我想在整個應用程序中創建一個「可重用」的按鈕,而無需爲每個實例編寫代碼。所以,我想從一個表單中獲取一個變量,例如公共整數值,當這個值改變時,我想寫入一個按鈕的文本。我知道我可以通過以btn_xxx.text = variable的形式編寫代碼來輕鬆完成此操作,但是如果我有幾個按鈕並且每個按鈕都看着相同的變量,該怎麼辦?目前我所做的是創建一個繼承按鈕並具有一個計時器的組件,該計時器在打勾時會查看變量並寫入文本。我確信有更好的方法。任何人都可以將我指向正確的方向嗎?我知道我的問題的一部分是我不知道什麼是所謂的命名,所以希望我問我的問題沒有太多的困惑。將值從形式傳遞到按鈕文本vb.net
我看到這個,https://www.daniweb.com/programming/software-development/threads/124842/detect-variable-change,但我沒有看到如何適應我的情況。
以下是我有:
Private WithEvents Active_Alarm As New Nav_Active_Alarm
計算計數子內
然後:
Active_Alarm.Count = CInt(dt_Active_Alarms.Rows.Count)
用戶控件:
Public Class Nav_Active_Alarm
Private mActive_Alarm_Count As Integer
Public Event Active_Alarm_Count_Changed(ByVal mvalue As Integer)
Public Property Count() As Integer
Get
Count = mActive_Alarm_Count
End Get
Set(ByVal value As Integer)
mActive_Alarm_Count = value
If Not Me.DesignMode Then
RaiseEvent Active_Alarm_Count_Changed(mActive_Alarm_Count)
test()
End If
End Set
End Property
Private Sub test()
If Not Me.DesignMode Then
If mActive_Alarm_Count = 0 Then
Me.btn_Goto_Active_Alarm.Image = My.Resources.Alarm_Clock_Static
'console or msgbox will work but updating the image will not
Else
Me.btn_Goto_Active_Alarm.Image = My.Resources.Alarm_Clock_Animation
'console or msgbox will work but updating the image will not
End If
End If
End Sub
End Class
如果我寫安慰或添加一個msgbox我會看到事件工作。但是,圖像不會改變。如果我從計時器中調用測試子,它將起作用。爲什麼不更新按鈕(順便說一句,我嘗試刷新並更新代碼)?
這不是關於'Button'的。一個普通的'Button'將會很好。你真正需要做的是使用一個帶有相應的Changed事件的屬性,然後將每個Button的Text屬性綁定到該屬性。每當你改變屬性值時,事件都會被提升,並且會提示所有的'綁定'來更新'按鈕'。 – jmcilhinney
我問的是可能的嗎?不尋找其他方法,只是想知道我問的是否可能。另外,對我游泳得如何的觀點不感興趣。我有理由想要這樣做,這將需要很多努力來解釋。我基本上想創建一個簡單的組件庫,所有你需要做的就是拖放。文字只是一個方面,圖像,顏色等 – James
任何人都可以解釋爲什麼我發佈的代碼將無法正常工作?如果我通過計時器打勾調用「測試」,它將起作用,但是如果我從事件中調用它不會,但是,我可以通過控制檯寫入或msgbox查看事件的工作情況。 – James