首页/文章/ 详情

【CATIA二次开发】如何让窗体的输入框(文本框,列表框等)记录其历史输入信息

1年前浏览2268

小伙伴们大家好,今天跟大家分享点vba的专业知识-如何让窗体的输入框(文本框,列表框,选择按钮等)记录其历史输入信息以便下次启动的时候直接使用。

这个问题的来源是这样的,有小伙伴们反应一个问题,就是每次打开齿轮生成器都会将所有的参数重置,那么是否可以让这款小插件记录其历史的输入信息呢。答案是肯定的,思路也是比较简单。

我们可以在计算机某一个位置建立一个txt文本,或者excel或者word或者其他的数据库也可以,本次我们以txt为例,创建txt我们使用的是catia.FileSystem对象,在这个txt文本中记录一下我们所输入的参数信息(齿数,模数,齿宽等),可以在窗体退出的时候读入到txt文本,(当然这里的窗体退出可以是query close事件 或者是某一个命令按钮的click结束主程序事件来实现的),在启动窗体的时候,再从txt文本中读取之前写入的数据并且赋给文本框。

逻辑就是这么easy!如下是截取的一些代码和解释。

'我们可以把txt文本放到和catvbaproject(或者vb工程)同一个路径,也可以随意的在我的电脑中找一个位置存放即可,只要可读,可写就可以。

Private Sub UserForm1_Initialize()

'如下是获取vb工程路径的方法

vbpath = App.Path

'创建txt文本的fullnametxt文本名称是infosave.txt

oName = vbpath & "\" & "infosave.txt"

Set oFileSystem = catia.FileSystem

'如果txt文本不存在,就创建一个,一般在初次使用的时候才执行

If oFileSystem.FileExists(oName) = False Then

Set oFile = oFileSystem.CreateFile(oName, False)

'如果txt存在,那么从中读取相关数据

Else

Set oFile = oFileSystem.GetFile(oName)

Set otxt = oFile.OpenAsTextStream("ForReading")

Dim data(6)

row = 1

Do Until otxt.AtEndOfStream

data(row) = otxt.ReadLine

row = row + 1

Loop

otxt.Close

'将数组中的信息传递给输入框(以下包含了文本框和列表框)

UserForm1.TextBox1.Text = data(1)

UserForm1.TextBox2.Text = data(2)

UserForm1.TextBox3.Text = data(3)

UserForm1.TextBox4.Text = data(4)

UserForm1.ComboBox1.ListIndex = data(5)

UserForm1.ComboBox2.ListIndex = data(6)

End If

End Sub

窗体退出的时候,将窗体输入框的信息写入txt

Private Sub UserForm1_QueryClose(Cancel As Integer, CloseMode As Integer)

Set dbFile = catia.FileSystem.GetFile(oName)

Set otxt = dbFile.OpenAsTextStream("ForWriting")

otxt.WriteUserForm1.TextBox1.Text & Chr(10)

otxt.WriteUserForm1.TextBox2.Text & Chr(10)

otxt.WriteUserForm1.TextBox3.Text & Chr(10)

otxt.Write UserForm1.TextBox4.Text& Chr(10)

 otxt.Write UserForm1.ComboBox1.ListIndex &Chr(10)

otxt.WriteUserForm1.ComboBox2.ListIndex

otxt.Close

End Sub

来源:CATIA小蚂蚁
System二次开发CATIA
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-11-17
最近编辑:1年前
CATIA专业培训讲师
日拱一卒无有进 功不唐捐终入海
获赞 30粉丝 113文章 54课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈