【发布时间】:2014-12-26 15:02:02
【问题描述】:
我想更改布尔列表的内容,所以我通过引用将它传递给一个方法,如下所示:
Dim liste As New List(Of Boolean)
liste.Add(lbl1.Visible)
liste.Add(lbl2.Visible)
RaiseEvent rgProcS9Selection(liste, SelectedIndex)
在方法中:
Private Sub rgProcS9SelectionMethod(ByRef ComposantsVisibility As List(Of Boolean), ByVal SelectedIndex As Integer)
ComposantsVisibility.Clear()
If SelectedIndex = 0 Then
For index As Integer = 0 To 1
ComposantsVisibility.Add(False)
Next
Else
For index As Integer = 0 To 11
ComposantsVisibility.Add(True)
Next
End IF
End Sub
列表的内容值已更改,但标签 (lbl1, lbl2) 的可见性仍然相同。
- 那么,我需要知道为什么项目没有通过引用传递?
- 如何修复我的代码
【问题讨论】:
-
因为列表内容布尔不是标签。您存储的 Bool 值 恰好 源自某些标签,这一事实不会创建与标签的链接。您的列表包含布尔值而不是标签对象
-
为什么你甚至期望标签改变它们的可见性只是因为你将列表中的一些
bools 从false更改为true?这就像您希望您的汽车在您启动割草机时启动一样,因为两者都使用燃料运行。
标签: .net vb.net winforms collections reference