注册 登录
编程论坛 VB6论坛

一个界面弹出另一个界面

lvguidong123 发布于 2012-11-09 13:30, 1024 次点击
我想设计一个界面,界面中点击设置这个按钮,它会弹出另一个界面进行设置参数,比如串口、波特率等参数。设置完成后,点击确定按钮,再返回到原来界面。怎么写代码啊?求解?
这是我做的趋势图,我想实现如下功能
只有本站会员才能查看附件,请 登录

点击参数设置按钮,弹出如下图的窗口
只有本站会员才能查看附件,请 登录

可是,设置完成后,该设置却不能运用到趋势图中,怎样让其设置的参数应用到第一个窗口呢?

[ 本帖最后由 lvguidong123 于 2012-11-10 09:32 编辑 ]
14 回复
#2
ccwu22012-11-09 15:29
New Form -> Options Dialog
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

frmOptions.show
#3
wxflw2012-11-09 20:38
参考
比如:
在form2中
form1.text1.text = form2中设置
#4
MrP72012-11-10 00:27
form2.show
form1.hide
设置好后
form1.show
form2.hide
#5
wp2319572012-11-10 07:58
用类似4楼做法较好
#6
Artless2012-11-10 10:57
以下是引用lvguidong123在2012-11-9 13:30:05的发言:
可是,设置完成后,该设置却不能运用到趋势图中,怎样让其设置的参数应用到第一个窗口呢?

全局变量
#7
lvguidong1232012-11-10 11:09
回复 6楼 Artless
什么是全局变量,怎么设置全局变量?我是初学者,还请多多指教
#8
wp2319572012-11-10 11:10
以下是引用lvguidong123在2012-11-10 11:09:04的发言:

什么是全局变量,怎么设置全局变量?我是初学者,还请多多指教
好久不用VB了

记得放置在模块中的变量应该称之为全局变量
#9
lvguidong1232012-11-10 14:46
回复 6楼 Artless
我用了全局变量,可是form2设置的参数对form1不起任何作用。我的form2的代码是
Private Sub Form_Load()
If MSComm1.PortOpen = True Then
   MSComm1.PortOpen = False
   Else
End If
Combo1.AddItem "COM1"
Combo1.AddItem "COM2"
Combo1.AddItem "COM3"
Combo1.AddItem "COM4"
Combo1.AddItem "COM5"
Combo1.AddItem "COM6"
Combo1.AddItem "COM7"
Combo1.AddItem "COM8"
Combo1.ListIndex = 2
Combo2.AddItem "9600"
Combo2.AddItem "4800"
Combo2.AddItem "2400"
Combo2.AddItem "1200"
Combo2.ListIndex = 2
Combo4.AddItem "4"
Combo4.AddItem "5"
Combo4.AddItem "6"
Combo4.AddItem "7"
Combo4.AddItem "8"
Combo4.ListIndex = 4
Combo5.AddItem "1"
Combo5.AddItem "2"
Combo5.ListIndex = 0
= Combo1.ListIndex + 1 '使用COM4
MSComm1.Settings = "9600,n,8,1" '设置通信口参数
MSComm1.InBufferSize = 1024 '设置接收缓冲区为40 字节
MSComm1.OutBufferSize = 2 '设置发送缓冲区为2 字节
MSComm1.InputMode = comInputModeBinary '设置接收数据模式为二进制形式
MSComm1.InputLen = 1 '设置Input 一次从接收缓冲读取字节数为1
MSComm1.SThreshold = 1 '设置Output 一次从发送缓冲读取字节数为1
MSComm1.InBufferCount = 0 '清除接收缓冲区
MSComm1.OutBufferCount = 0 '清除发送缓冲区
w = 0 '数据个数计数器清零
MSComm1.RThreshold = 1 '设置接收一个字节产生OnComm 事件
End Sub
Private Sub Combo1_Click()
If MSComm1.PortOpen = True Then  '如果串口打开先关闭后再进行其他操作
   MSComm1.PortOpen = False
 End If
= Combo1.ListIndex + 1 '读取com口号
End Sub
#10
风吹过b2012-11-11 09:28
首先,你的设置对应的变量在那里定义??
应该在 FORM1 或 模块 中定义。 并且是 使用 public 关键字进行的定义。
这里分三种情况:
1、在 form1 中用 public 定义。定义位置是 代码的最前面。
那么使用 form1.变量名 进行访问。这些变量就是相当于 form1 的一个属性。
在 form2 中点确定时,把值写入 这些变量。
2、在 模块中用 pulic 定义。定义位置是 所有的过程函数的前面。
那么直接使用 变量名来访问。此类变量被称为 全局变量,整个工程可见。

3、在 form2 中,没有定义,直接是控件属性。
那么处理情况如下:
进入设置 ,在FORM1 中对应的命令是
Form2.Show vbModal        '以有模式窗口打开 设置窗口,此时,form1不可选,代码执行暂停。定时器不停。
读取form2 控件属性的代码。

---在form2中确定的代码----
form2.hide                '隐藏 form2 ,FORM1 自动变为前后,代码继续执行。

运行流程:
form2.show vbodal ->显示 form2 ,form1 代码暂停->form2 选择完成后,按下确定->form2.hide ,隐藏 form2
->form1 继续执行,执行读取 form2控件属性的代码
#11
mayuebo2012-11-11 16:18
支持楼上.写得非常好.
#12
QQ5647832012-11-11 18:41
我也是初学者 有没有哪位师傅可以教我VB
#13
lvguidong1232012-11-12 11:57
回复 10楼 风吹过b
Combo1.AddItem "COM1"
Combo1.AddItem "COM2"
Combo1.AddItem "COM3"
Combo1.AddItem "COM4"
Combo1.AddItem "COM5"
Combo1.AddItem "COM6"
Combo1.AddItem "COM7"
Combo1.AddItem "COM8
你说的变量是Combo1.AddItem 吗》?好像没有定义什么变量啊,我不懂,能说的具体点吗?需要改哪个?
只有本站会员才能查看附件,请 登录

我把这部分改了。
#14
lvguidong1232012-11-12 13:29
回复 10楼 风吹过b
我在form2中设置的串口怎样才能应用到form1中?
只有本站会员才能查看附件,请 登录
#15
风吹过b2012-11-12 19:12
1