我有2個VB.Net應用程序中的窗體 在Form1中我有一個Listview元素 我想在Form2中顯示相同的Listview,大小 這樣做的最好方法是什麼? 謝謝在VB.NET中以2種不同的形式顯示相同的listview元素
-1
A
回答
0
不,沒有內置的方法將一個ListView
控件的內容複製到另一個。相反,您應該重構您的代碼,以便業務邏輯與UI分離。從API獲取數據的邏輯以及用該數據填充控制的邏輯都應該位於可以由任何形式使用的單獨的公共類中。爲了做到這一點,您需要將數據存儲在某種形式,類和方法之間的數據結構中。例如,如果列表中的每個項目都可以表示爲Atom
課程,則我建議使用List(Of Atom)
對象來保存數據。例如,你的通用類可能是沿着這些路線的東西:
Public Class ShoppingBusiness
Public Function GetData() As List(Of Atom)
' Get data from API and return it as a List(Of Atom) object
End Function
Public Sub LoadList(atoms As List(Of Atom), list As ListView)
' Load the ListView control with the data
End Sub
End Class
一旦商業邏輯被分解到它自己的類這樣,你就可以很容易地訪問所有的邏輯免遭任何形式的不重複所有碼。然而,而不是兩種形式,在這個例子中,調用ShoppingBusiness.GetData
,因爲這可能是一個緩慢的方法,你會想要做的只是一次,然後使用相同的數據來填充這兩個ListView
控制。例如,如果Form1
顯示Form2
,它可以做這樣的:
Public Class Form1
Private _data As List(Of Atom)
Private _business As ShoppingBusiness = New ShoppingBusiness()
Private Sub refreshList()
_data = _business.GetData()
_business.LoadList(_data, ListView1)
End Sub
Private Sub showForm2()
Dim form2 As Form2 = New Form2()
form2.Data = _data
form2.Show()
End Sub
End Class
Public Class Form2
Private _data As List(Of Atom)
Private _business As ShoppingBusiness = New ShoppingBusiness()
Public Property Data() As List(Of Atom)
Get
Return _data
End Get
Set(ByVal value As List(Of Atom))
_data = value
End Set
End Property
Private Sub refreshList()
_business.LoadList(_data, ListView2)
End Sub
End Class
正如你可以看到在這個例子下,Form1將保留數據拷貝到內存中它得到了上去。它將數據保存在私人的_data
字段中。當它創建一個新的Form2
對象時,在它顯示它之前,它會爲它提供它在內存中已有的數據的引用。然後,Form2
可以使用相同的方法LoadList
將數據加載到列表中,但它並沒有從API再次因爲數據被Form1
給它來獲取數據。
相關問題
- 1. 德爾福:以兩種不同的形式顯示相同的圖形
- 2. 不同頁面上的相同元素顯示不同的CSS
- 3. 創建2種不同類型相同的根元素
- 4. 具有相同CSS的元素在Chrome中顯示不同
- 5. 在c上以2種不同的尺寸顯示相同的圖標#
- 6. 以不同的形式顯示標籤if if else,vb.net
- 7. 2種不同的動作形式
- 8. 如何在同一屏幕中顯示2個不同ListView的2個元素之間的連接?
- 9. 以一種形式顯示兩個不同的mysql表結果
- 10. 與第一種形式同時顯示的第二種形式
- 11. c# - 使用不同形式的相同元素
- 12. YII2:在不同的活動窗體形式及其ID中的相同元素
- 13. 調用2種2種不同形式的
- 14. CSS:兩個相同的元素在2個不同的網站上顯示不同
- 15. Vb.net總結相同的數組元素
- 16. Android - 帶2種不同顏色的ListView
- 17. CakePHP - 以不同的方式顯示視圖/元素
- 18. Symfony 2 - 在不同頁面上的相同形式
- 19. 2種不同的形式,都可以打開form3
- 20. 如何針對不同的值顯示相同的ListView?
- 21. 重複使用相同的ListView顯示不同的數據
- 22. ListView中添加不同的元素
- 23. listview中元素的不同顏色
- 24. 如何在VB.NET中以相同形式切換窗體
- 25. RSpec的顯示模式2種不同的情況下,保存
- 26. 試圖讓2點不同的形式與2種不同的動作
- 27. Jaxb 2將不同的元素映射到相同的屬性
- 28. 顯示在相同視圖中的多態關聯的形式?
- 29. 具有相同FormGroup的兩種形式?
- 30. 相同的形式,不同的行爲
此任務的哪些部分是您遇到的問題?這是一個WinForm應用程序嗎?數據來自哪裏? –
是它在VB.NET中的winform應用程序,來自谷歌購物API Atom格式的數據,我解析了原子提要並填充了Listview1中的數據,我不是真正的程序員,我想知道是否有內置的功能來顯示當我展示它時,Form1在Form1中的相同Listview就像複製將Listview1粘貼到Form2一樣 – FPGA