我有一个活动门票销售的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
答案 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