Arrays 将二维数组中的数据显示到组合框和文本框中

Arrays 将二维数组中的数据显示到组合框和文本框中,arrays,vb.net,combobox,Arrays,Vb.net,Combobox,我在vb.net中有一个二维项目和价格数组: Dim items(,) As String = {{"Chicken Sand", "9000"}, {"Roast Beef Sand", "13500"}, {"Salmon Sand", "13500"}, {"Tuna Sand", "11000"}, {"Halloumi Sandwich", "7000"}, {"Ham & Cheese Sand", "80

我在vb.net中有一个二维项目和价格数组:

Dim items(,) As String = {{"Chicken Sand", "9000"}, {"Roast Beef Sand", "13500"}, 
                 {"Salmon Sand", "13500"}, {"Tuna Sand", "11000"},
                 {"Halloumi Sandwich", "7000"}, {"Ham & Cheese Sand", "8000"}, 
                 {"Water", "1500"}, {"Soft Drink", "2500"}, 
                 {"Fresh Lemonade", "3000"}, {"Fresh Orange", "3500"}}
我想用这个数组中的项目填充一个组合框 当选择组合框中的每个项目时,我希望价格将显示在特定于价格的文本框中。 我达到:

For row = 0 To items.GetUpperBound(0)
    cbitem.Items.Add(items(row, 0))
Next`

这是一个家庭作业,我们被要求用二维数组填充组合框中的项目

与使用数据源相比,这不是一个好方法:

实际上,您不能将数组放入
组合框
,因为
是一个集合,而不是多维数组。但您可以将其用作查找所选内容。确保阵列具有窗体级别的作用域:

Option Strict On
Public Class MenuFrm

    Private items(,) As String = {{"Chicken Sand", "9000"}, {"Roast Beef Sand", "13500"},
                    {"Salmon Sand", "13500"}, {"Tuna Sand", "11000"},
                    {"Halloumi Sandwich", "7000"}, {"Ham & Cheese Sand", "8000"},
                    {"Water", "1500"}, {"Soft Drink", "2500"},
                    {"Fresh Lemonade", "3000"}, {"Fresh Orange", "3500"}}
稍后,可能在表单加载中,用以下名称填写cbo:

For row = 0 To items.GetUpperBound(0)
    cbox1.Items.Add(items(row, 0))
Next
现在,当他们挑选某样东西时,查看字符串价格:

Private Sub cbox1_SelectedIndexChanged1(sender As Object, 
        e As EventArgs) Handles cbox1.SelectedIndexChanged
    If cbox1.SelectedIndex < 0 Then Return
    Dim price = Convert.ToDecimal(items(cbox1.SelectedIndex, 1))
End Sub
Private Sub cbox1\u选择了dexchanged1(发送方作为对象,
e作为EventArgs)处理cbox1.SelectedIndexChanged
如果cbox1.SelectedIndex<0,则返回
Dim price=Convert.ToDecimal(项目(cbox1.SelectedIndex,1))
端接头
一个合适的
数据源
会将价格存储为一个数字,将价格与菜单项一起保存,并使其在
SelectedValueChanged
中可用


这是一个家庭作业,我们被要求用二维数组用项目填充组合框

与使用数据源相比,这不是一个好方法:

实际上,您不能将数组放入
组合框
,因为
是一个集合,而不是多维数组。但您可以将其用作查找所选内容。确保阵列具有窗体级别的作用域:

Option Strict On
Public Class MenuFrm

    Private items(,) As String = {{"Chicken Sand", "9000"}, {"Roast Beef Sand", "13500"},
                    {"Salmon Sand", "13500"}, {"Tuna Sand", "11000"},
                    {"Halloumi Sandwich", "7000"}, {"Ham & Cheese Sand", "8000"},
                    {"Water", "1500"}, {"Soft Drink", "2500"},
                    {"Fresh Lemonade", "3000"}, {"Fresh Orange", "3500"}}
稍后,可能在表单加载中,用以下名称填写cbo:

For row = 0 To items.GetUpperBound(0)
    cbox1.Items.Add(items(row, 0))
Next
现在,当他们挑选某样东西时,查看字符串价格:

Private Sub cbox1_SelectedIndexChanged1(sender As Object, 
        e As EventArgs) Handles cbox1.SelectedIndexChanged
    If cbox1.SelectedIndex < 0 Then Return
    Dim price = Convert.ToDecimal(items(cbox1.SelectedIndex, 1))
End Sub
Private Sub cbox1\u选择了dexchanged1(发送方作为对象,
e作为EventArgs)处理cbox1.SelectedIndexChanged
如果cbox1.SelectedIndex<0,则返回
Dim price=Convert.ToDecimal(项目(cbox1.SelectedIndex,1))
端接头
一个合适的
数据源
会将价格存储为一个数字,将价格与菜单项一起保存,并使其在
SelectedValueChanged
中可用


您可以使用实用程序类或匿名类型创建数据源作为链接答案show@Plutonix我不明白如果你想向用户显示一个东西并收集其他东西,比如值,你应该使用数据源。它可以是一个数据表或(T的)列表,也可以是一个匿名类型的列表。链接的帖子展示了它是如何做到的:它还可以让你将价格存储为一个值,而不是一个值text@Plutonix没有办法使用二维区域??你不是真的使用二维数组-你是在迭代它来逐个提取数据。您可以使用实用程序类或匿名类型创建一个数据源作为链接答案show@Plutonix我不明白如果你想向用户显示一个东西并收集其他东西,比如值,你应该使用数据源。它可以是一个数据表或(T的)列表,也可以是一个匿名类型的列表。链接的帖子展示了它是如何做到的:它还可以让你将价格存储为一个值,而不是一个值text@Plutonix没有办法使用二维区域??你不是真的使用二维数组-你是在迭代它来逐个提取数据。最好做得正确谢谢你@puropoix我将使用2d阵列,因为这是我要求的。非常感谢@puropoix,我将使用2d阵列,因为这是我要求的。感谢您提供更好的数据源方式。