请教大佬,怎么简化这段代码

天天三公里 2020-08-15 11:21:52
初学者,百度加论坛请教出来了文本保存
但我如果有500个textbox,也只能这样写下去吗
自己琢磨了几个循环,都失败了
请教大佬有啥简化的方法?

Dim PathUserData As String = "d:\11111.txt" '文本文件写入
Dim t As System.IO.StreamWriter = New System.IO.StreamWriter(PathUserData, False, System.Text.Encoding.UTF8)
t.WriteLine(TextBox1.Text)
t.WriteLine(TextBox2.Text)
t.WriteLine(TextBox3.Text)
t.WriteLine(TextBox4.Text)
t.WriteLine(TextBox5.Text)
t.WriteLine(TextBox6.Text)
t.WriteLine(TextBox7.Text)
t.WriteLine(TextBox8.Text)
t.WriteLine(TextBox9.Text)
t.WriteLine(TextBox10.Text)
t.WriteLine(TextBox11.Text)
t.WriteLine(TextBox12.Text)
t.WriteLine(Label4.Text)

t.Close()

Dim sr As System.IO.StreamReader = New System.IO.StreamReader("d:\11111.txt", System.Text.Encoding.Default)
Dim line As String
line = sr.ReadLine '文本文件读取
Me.TextBox1.Text = line
line = sr.ReadLine
Me.TextBox2.Text = line
line = sr.ReadLine
Me.TextBox3.Text = line
line = sr.ReadLine
Me.TextBox4.Text = line
line = sr.ReadLine
Me.TextBox5.Text = line
line = sr.ReadLine
Me.TextBox6.Text = line
line = sr.ReadLine
Me.TextBox7.Text = line
line = sr.ReadLine
Me.TextBox8.Text = line
line = sr.ReadLine
Me.TextBox9.Text = line
line = sr.ReadLine
Me.TextBox10.Text = line
line = sr.ReadLine
Me.TextBox11.Text = line
line = sr.ReadLine
Me.TextBox12.Text = line
line = sr.ReadLine
Me.Label4.Text = line
sr.Close()
...全文
3067 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tengwei6328 2020-08-18
  • 打赏
  • 举报
回复
通常来说,一个FORM上的控件个数,都是固定的,假如你是编辑人员信息的窗体,不外乎就是姓名,地址,籍贯,婚否,电话。。。, 当需要保存这些信息或读取这些信息时,都是逐个处理的。因为每个TextBox代表的信息不同,就有不同的业务逻辑,比如姓名不能为空,地址可以不填。 所以不要想太多~
清风不拂面 2020-08-16
  • 打赏
  • 举报
回复
直接在电子表格文件里填写不更容易吗? 可以直接复制、粘贴,更容易些。
glen30 2020-08-16
  • 打赏
  • 举报
回复
引用 8 楼 天天三公里 的回复:
[quote=引用 7 楼 glen30 的回复:]可以定义textbox数组吧,循环遍历数组不就可以了吗

百度写了几个,没成功额
能给个一小段示范吗[/quote]

VB6.0里面有控件数组,VB.net用法不太一样,貌似这种场景不太适合控件数组
glen30 2020-08-16
  • 打赏
  • 举报
回复
使用窗体嵌套比较好:
新建一个窗体,假设为formA,在里面放一个goup,放6个textbox,在这个窗体里面写几个public的函数,比如清除所有的textbox、获取值等
在主窗体里面把上面的窗体formA嵌套进来,然后循环操作:
填完内容获取内容后,可以调用formA的清除方法,再次输入

窗体嵌套的使用方法可参考:
https://developer.51cto.com/art/201001/179552.htm
天天三公里 2020-08-16
  • 打赏
  • 举报
回复
引用 7 楼 glen30 的回复:
可以定义textbox数组吧,循环遍历数组不就可以了吗
百度写了几个,没成功额 能给个一小段示范吗
glen30 2020-08-16
  • 打赏
  • 举报
回复
可以定义textbox数组吧,循环遍历数组不就可以了吗
天天三公里 2020-08-16
  • 打赏
  • 举报
回复
引用 4 楼 清风不拂面 的回复:
其实一个textbox也可以实现,将它的属性设置成多行即可
这样的GroupBox大概要190多个,然后里面textbox各6个,算下来要1000多个 然后我在里面输入内容保存到文本,是动态一直会变的 我只能重复的一个个text1,text2.....这样写下去吗
天天三公里 2020-08-16
  • 打赏
  • 举报
回复
这样的GroupBox大概要190多个,然后里面textbox各6个,算下来要1000多个 然后我在里面输入内容保存到文本,是动态一直会变的
清风不拂面 2020-08-16
  • 打赏
  • 举报
回复
其实一个textbox也可以实现,将它的属性设置成多行即可
清风不拂面 2020-08-16
  • 打赏
  • 举报
回复
读写一篇文章,你的目的是什么?如果行显示文章,可以用一个listbox,分行读取到控件中,为什么要建那么多textbox?
清风不拂面 2020-08-16
  • 打赏
  • 举报
回复
引用 5 楼 天天三公里 的回复:
这样的GroupBox大概要190多个,然后里面textbox各6个,算下来要1000多个 然后我在里面输入内容保存到文本,是动态一直会变的
1、只需要按图在窗体上一个group和六个textbox,如果要保存的文件用到编号就再加一个textbox,另外布置一个清除、一个保存按钮。 2、保存的过程中,可以用一个字符串保存六个textbox信息, str1="" For i = 1 To 6 Dim c() As Control = Me.Controls.Find("TextBox" & i, False)‘textbox1~textbox6 str1=str1 & c(0).Text) & vbcrlf Next 保存的文件名可以用时间保存目录,编号做为文件名,由程序生成,比手工命名省事。 保存完成后编号自动+1,也可以在此进行清除命令 3、如果数据都是固定的,可以加上一个读入按钮,将保存的文件分别读入。 4、如果有固定时间间距,可以加上timer1,设置好时间,自动读入。
天天三公里 2020-08-16
  • 打赏
  • 举报
回复
引用 9 楼 glen30的回复:
使用窗体嵌套比较好:
新建一个窗体,假设为formA,在里面放一个goup,放6个textbox,在这个窗体里面写几个public的函数,比如清除所有的textbox、获取值等
在主窗体里面把上面的窗体formA嵌套进来,然后循环操作:
填完内容获取内容后,可以调用formA的清除方法,再次输入

窗体嵌套的使用方法可参考:
https://developer.51cto.com/art/201001/179552.htm
好、我看看、谢了哈
天天三公里 2020-08-16
  • 打赏
  • 举报
回复
引用 11 楼 清风不拂面的回复:
直接在电子表格文件里填写不更容易吗? 可以直接复制、粘贴,更容易些。
本身是有一块大的木板子上面格式都画好的、手工擦写、想着电子化省力点
天天三公里 2020-08-15
  • 打赏
  • 举报
回复
引用 1 楼 大西瓜大降价一块一斤 的回复:

        Dim i As Integer
        For i = 1 To 500
            Dim c() As Control = Me.Controls.Find("TextBox" & i, False)
            MessageBox.Show(c(0).Text)
        Next
大佬这好像不是我要的代码,我是想比如500个文本要读取保存,我这代码只能这个顺序那么长的写下去吗
  • 打赏
  • 举报
回复

        Dim i As Integer
        For i = 1 To 500
            Dim c() As Control = Me.Controls.Find("TextBox" & i, False)
            MessageBox.Show(c(0).Text)
        Next

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧