我一直非常感興趣,因爲後期的界面和進一步定製它們的能力超出了使用它們的默認狀態。使用通用列表(表單),收集對象的名稱屬性
我一直在研究IList(of T)。使用泛型列表而不是ArrayLists的優點令我吃驚。這是一張test的圖片。這是進一步解釋about the Test的網站。
所以,當然我想試驗。當我第一次用ForNext方法迭代列表時,代碼工作正常。第二次我無法訪問列表中的表單名稱,因爲它已被處置。任何人都有任何洞察力,我可以如何訪問列表中的表單屬性。
Public Class frmMain
Dim Cabinet As List(Of Form) = New List(Of Form)
Dim FormA As New Form1
Dim FormB As New Form2
Dim FormC As New Form3
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles _Me.Load
Cabinet.Add(FormA)
Cabinet.Add(FormB)
Cabinet.Add(FormC)
End Sub
Sub displayForm(ByVal aForm As Form)
Dim myFormName As String = ""
Stopwatch.Start()
If aForm.IsDisposed = False Then
aForm.Show()
Else
myFormName = aForm.(How do I access this objects Name?)
aForm = New Form '<----- I would rather simply use aForm = New(aForm)
aForm.Name = myFormName
aForm.Show()
End If
Stopwatch.Stop()
Dim RealResult As Decimal = (Stopwatch.ElapsedMilliseconds/1000)
Debug.WriteLine(RealResult)
Stopwatch.Reset()
End Sub
Private Sub btnForEach_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnForEach.Click
'Dim instance as List
'Dim action as Action(of T)
'instance.ForEach(action)
'action = delegate to a method that performs an action on the object passeed to it
Cabinet.ForEach(AddressOf displayForm)
End Sub
我真的不明白爲什麼如果VB知道,這是一個通用的列表,這意味着它是博學的列表的類型,以及對象都被限制爲形式;爲什麼我不能在列表中的項目上調用構造函數。防爆。 aForm =新的aForm或aForm =新的Cabinet.aForm
撕開這個爲我打開的人。謝謝。
好吧,我剛剛發現,如果我使用CTYPE(myListObject,表)我可以訪問Form.text財產。如果有人有2美分,但我想聽到它。 – Ccorock