在vb中创建以逗号分隔的数组仅显示数组的最后一个值

时间:2014-07-01 15:16:46

标签: asp.net vb.net

我遇到了问题,非常感谢任何帮助。我有一个逗号分隔的数组,我用来获取下拉列表的选定值。问题是数组只显示最后一个值。

这是我的代码:

Dim values As String
values = "RO,RW"

Dim sites As String() = Nothing
sites = values.Split(",")

Dim s As String

For Each s In sites
    emptytext.SelectedItem.Text = s
Next

2 个答案:

答案 0 :(得分:1)

将变量s始终设置为同一项会导致所描述的行为 可能你想要这样的东西(假设emptyText是一个组合框或排序列表)

 emptytext.Items.Clear()
 For Each s In sites
      emptytext.Items.Add(s)
 Next

答案 1 :(得分:1)

您评论说您有两个下拉列表,并且您希望逗号分隔列表中的值成为下拉列表中的选定项目。因此,您需要依次浏览项目下拉列表并设置每个项目的选择项。

我创建了一个Windows Forms项目表单,如下所示:

Unpopulated dropdowns

(控件都有默认名称)。

然后我使用了以下代码:

Public Class Form1

    Dim ddls() As ComboBox

    Private Sub SetUpDropdowns()
        Dim values() As String = "RO,RW".Split(","c)
        ddls = {ComboBox1, ComboBox2}

        For Each ddl In ddls
            ddl.Items.AddRange(values)
        Next

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim settings = TextBox1.Text.Split(","c)

        If settings.Count > ddls.Count Then
            MsgBox(String.Format("Too many setting values entered, maximum is {0}.", ddls.Count))
            Exit Sub
        End If

        For i = 0 To settings.Count - 1
            ddls(i).SelectedItem = settings(i)
        Next

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        SetUpDropdowns()

    End Sub

End Class

[编辑:在设置中使用.AddRange而不是循环中的.Add。]

我在TextBox中输入了RO,RW,然后点击了Button1来获取此信息:

Populated dropdowns