Texboxes从tabcontrol VB按指定顺序的值

时间:2015-12-14 18:27:21

标签: vb.net

我有一个活动门票销售的vb项目,最后我需要为每次购买保存一个文本文件。

我有标签控件,最后,需要在文本文件(事件和客户)中输入的所有数据都在一个选项卡中。

我有这个代码,它将读取每个文本框中的文本,现在为了测试目的,它会抛出一个带有值的消息框。唯一可行的是,它以奇数顺序显示值,而我不知道如何按所需顺序读取它们。 (如果我可以在textbox.text之前添加标签,它也不会受到伤害,但我不是那么贪心:))

 For Each GenericControl In TabPurchaseTickets.Controls
            If TypeOf GenericControl Is System.Windows.Forms.TextBox Then
                Dim tb As TextBox = DirectCast(GenericControl, TextBox)
                MsgBox(tb.Text)
            End If
        Next

2 个答案:

答案 0 :(得分:1)

在将这些文本框及其值写入文件之前,您需要有一些东西可以帮助您识别这些文本框及其值 在将来修改应用程序时,依赖tabcontrol上文本框的顺序将是一个很大的错误。如果您需要更改该订单,旧文件将导致版本控制'问题

您可以在设计时为每个文本框定义Tag属性,其值可帮助您识别它们并使用标记值,分隔符和文本框值编写文件

  Dim sb = new StringBuilder()
  For Each GenericControl In TabPurchaseTickets.Controls.OfType(Of TextBox)
     Dim tb As TextBox = DirectCast(GenericControl, TextBox)
     sb.AppendFormat("{0};{1}", tb.Tag, tb.Text)
     sb.AppendLine()
 Next

现在将StringBuilder.ToString写入文本文件,你最终会得到类似的东西

Name;John
Surname;McInroe
Sport;Tennis
....

通过这种方式,您可以根据需要更改文本框的顺序,因为每个值都与Tag属性相关联,您可以轻松地重新加载它。

当然这只是一个例子,我建议您调查使用正确的数据库系统而不是简单的文件。

答案 1 :(得分:0)

这是一个非常难看的解决方案,但它确实有效。不幸的是,这个项目很多! :d

感谢标签的想法,很高兴发现还有另一个领域,我可以"存储"文本框中的文字。

无论如何,这里是bodge代码*注意msgbox仅用于测试输出,这将被修改为以后保存在文本文件中:

Dim labels(15)As String         Dim fields(15)As String

eax