有很多我們並不瞭解用例或(真實)數據和來源。顯示和編輯不同數量項目的一種方法是DataGridView
。如果它是一個模式對話框,它會彈出「:
' form level collection of things
Private Recipe As List(Of RecipeItem)
...
' prepare the data and display:
Recipe = New List(Of RecipeItem)
Recipe.Add(New RecipeItem With {.Ingredient = "Carrot"})
Recipe.Add(New RecipeItem With {.Ingredient = "Apple"})
Recipe.Add(New RecipeItem With {.Ingredient = "Banana"})
Recipe.Add(New RecipeItem With {.Ingredient = "Hemlock"})
...
Dim UmCol As New DataGridViewComboBoxColumn
UmCol.DataPropertyName = "UnitMeasure"
UmCol.DataSource = [Enum].GetValues(GetType(UnitMeasure))
dgvDD.DataSource = Recipe
dgvDD.Columns.Remove("UnitMeasure")
dgvDD.Columns.Add(UmCol)
的DGV將節省用戶編輯回底層數據源 - 配方列表,在這種情況下。
' elsewhere
For Each item In Recipe
Console.WriteLine(item.ToString)
Next
結果:
2香蕉
的蘋果
1.5杯的每個胡蘿蔔
1茶匙 3鐵杉
蒲式耳
甲UserControl
與動態建立TextBox
控制也可以工作,但你可能仍然需要一個集合來存儲數據一個。如果數據來自數據庫,則DGV仍然可以正常工作,只需使用DataTable
作爲源而不是Recipe
集合。
[TableLayoutPanel](https://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel(v = vs.110).aspx) – Steve
除了「彈出」部分,它聽起來像(小)datagridview – Plutonix
「彈出」部分是當用戶控件被調用並顯示時。非常感謝@Plutonix!我絕對應該花一些時間瀏覽視覺工作室的界面 – robotHamster