2011-03-22 109 views
1

例如,我知道您可以通過簡單地包含「我」而不是「form1」來引用「間接」表單。VB.net - 元素參考

有沒有辦法爲文本框或單選按鈕等表單元素做同樣的事情?

例子:

If me.checked = true then 
    count += 1 
Else 
    count -=1 
End If 

回答

0

VB.net使用發件人變量來指示誰的操作正在發送到過程。通過在過程的「句柄」屬性中添加多個元素,您可以使用發件人標識正在活動的元素。

0

做到這一點的唯一方法是創建一個名爲檢查屬性,它封裝了一個複選框控件是窗體類的成員。例如:

Public Property checked() As Boolean 
    Get 
     return myCheckbox.Checked 
    End Get 
    Set(ByVal Value As Integer) 
     myCheckbox.Checked = value 
    End Set 
End Property 

雖然這樣做並沒有得到多少好處。這實際上會導致代碼混淆,而不是簡潔明瞭。

0

在VB中,關鍵字me是對包含me引用的代碼範圍(作爲該類的函數)的類實例的引用。我不知道這是否足夠清晰,但基本上me不能從Form類內部使用來引用該類的成員(例如CheckBox或RadioButton控件) - 僅適用於類本身。

您放置在窗體上的CheckBox和RadioButton控件被創建爲包含它們的Form類中的私有對象。他們被稱爲班級的成員。從包含CheckBox和RadioButton成員實例的類中,您可以將該類本身(表單)引用爲me。因此,假設你有所謂的「checkbox1」複選框爲表單上的控制,即CheckBox控件將被創建爲私有成員的表格內是這樣的:

Private checkbox1 as CheckBox 

之後,表單您可以指這樣的CheckBox:

Me.checkbox1