【问题标题】:How to get each item from a listbox and store it to multiple textboxes in VB.NET如何从列表框中获取每个项目并将其存储到 VB.NET 中的多个文本框
【发布时间】:2020-07-24 20:25:30
【问题描述】:

If you click this link to see this image, 我有一个包含各种数字项的列表框。我想知道如何从列表中获取每个项目并将其存储到文本框。

由于每个文本框都被命名为 TextBox1、TextBox2、TextBox3 等,我尝试使用此代码,

        For i = 1 To 15

            Me.Controls(String.Format("TextBox{0}", i)).Text = item.Value

        Next

但它只从文本框中获取最后一项,并将它们全部放在前 15 个文本框中。 Click to view the output.

我想要的是一个循环代码,它将从列表框中获取第一项并将其存储在 textbox1 中,从列表框中获取第二项并将其存储在 textbox2 中,依此类推。

感谢任何帮助。谢谢

【问题讨论】:

  • 如果你在循环的每次迭代中分配相同的东西,即item.Value,为什么每次都得到相同的值你会感到惊讶呢?如果您希望每次迭代都使用不同的值,那么您需要每次迭代都获得不同的值。您真正想要回答的问题是如何在循环中从ListBox 获取项目,这是一个您可以自己轻松回答的问题。
  • 另一个问题可能是当它们的位置显然在其他地方时,这些值如何最终出现在 ListBox 中。 ListBox 不应用作从某个源加载的数据的 存储库。使用List(Of Decimal)List(Of class) 来存储您的值并使用更合适的选择器 将它们分配到它们所属的位置。

标签: vb.net textbox listbox


【解决方案1】:

根据 jmc 的建议,您还应该从列表中提取不同的项目:

    For i = 1 To 15

        Me.Controls(String.Format("TextBox{0}", i)).Text = LISTBOXNAME.Items(i - 1).Value
                                                           ^^^^^^^^^^^^^^^^^^^^^^^^
    Next

记住数组是从 0 开始索引的

--顺便说一句,这些都不是做这些事情的好方法。你的文本框应该很好命名,你应该将你的文本解析成具有命名属性等的适当的类对象。但是如果你现在只是一个快速破解,将来很难维护(因为只有一个带有 X 文本框的表单在命名的 textbox1, 2, ... 37 上)然后就足够了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 2014-05-19
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    相关资源
    最近更新 更多