VB,怎样在不同的窗体中使用同一个mscomm1控件??
情况描述:1、我是VB新手,应老板要求第一次用VB做软件。2、软件包含两个窗体,一个是主界面名为“main”,另一个是主界面的子窗体名为“sett”,用于设置参数,点击主...
情况描述:
1、我是VB新手,应老板要求第一次用VB做软件。
2、软件包含两个窗体,一个是主界面名为“main”,另一个是主界面的子窗体名为“sett”,用于设置参数,点击主界面中的“设置”按钮,sett界面即会弹出。
3、我在主界面main中加入了一个mscomm1控件,并在主窗体的通用代码部分定义了一个public类型的发送(fasong)函数(见后续程序),该发送函数使用mscomm1控件想发送数据到串口。结果发现函数fasong在主界面窗体中能够使用,在子窗体sett中就不好使用,以前没用过,肯定是少了什么语句了。
问题:帮我看看少了什么东西?该怎么修改?程序见问题补充。
/这部分是主界面main中的程序
Public Sub fasong(addr_h As Byte, addr_l As Byte, cmd As Byte) '定义共用过程
Dim fasong_data(1 To 3) As Byte
fasong_data(1) = addr_h
fasong_data(2) = addr_l
fasong_data(3) = cmd
MSComm1.Output = fasong_data ' 发送数据
End Sub
Private Sub Form_Load()
'===============串口初始化===
MSComm1.CommPort = 2
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
' 打开端口。
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
'==============================================
Call fasong(&H10, &H0, &H3) ’调过程发送数据,通过这里的这个函数串口能成功接收
End Sub
Private Sub canshuzhezhi_Click() ’主界面中“参数设置”按钮,按下后弹出sett窗体
sett.Show
End Sub
/
///以下是子窗体sett中的程序
Private Sub Form_Load() ’想在窗体弹出时就发送,但提示变量或函数未定义
main.MSComm1
Call fasong(&H10, &H0, &H3)
End Sub 展开
1、我是VB新手,应老板要求第一次用VB做软件。
2、软件包含两个窗体,一个是主界面名为“main”,另一个是主界面的子窗体名为“sett”,用于设置参数,点击主界面中的“设置”按钮,sett界面即会弹出。
3、我在主界面main中加入了一个mscomm1控件,并在主窗体的通用代码部分定义了一个public类型的发送(fasong)函数(见后续程序),该发送函数使用mscomm1控件想发送数据到串口。结果发现函数fasong在主界面窗体中能够使用,在子窗体sett中就不好使用,以前没用过,肯定是少了什么语句了。
问题:帮我看看少了什么东西?该怎么修改?程序见问题补充。
/这部分是主界面main中的程序
Public Sub fasong(addr_h As Byte, addr_l As Byte, cmd As Byte) '定义共用过程
Dim fasong_data(1 To 3) As Byte
fasong_data(1) = addr_h
fasong_data(2) = addr_l
fasong_data(3) = cmd
MSComm1.Output = fasong_data ' 发送数据
End Sub
Private Sub Form_Load()
'===============串口初始化===
MSComm1.CommPort = 2
MSComm1.Settings = "9600,N,8,1"
' 当输入占用时,
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
' 打开端口。
MSComm1.PortOpen = True
MSComm1.InputMode = comInputModeBinary
'==============================================
Call fasong(&H10, &H0, &H3) ’调过程发送数据,通过这里的这个函数串口能成功接收
End Sub
Private Sub canshuzhezhi_Click() ’主界面中“参数设置”按钮,按下后弹出sett窗体
sett.Show
End Sub
/
///以下是子窗体sett中的程序
Private Sub Form_Load() ’想在窗体弹出时就发送,但提示变量或函数未定义
main.MSComm1
Call fasong(&H10, &H0, &H3)
End Sub 展开
5个回答
展开全部
Public Sub fasong(addr_h As Byte, addr_l As Byte, cmd As Byte) '定义共用过程
Dim fasong_data(1 To 3) As Byte
fasong_data(1) = addr_h
fasong_data(2) = addr_l
fasong_data(3) = cmd
MSComm1.Output = fasong_data ' 发送数据
End Sub
这个里面的
MSComm1.Output = fasong_data ' 发送数据
改成
Main.MSComm1.Output = fasong_data ' 发送数据
Dim fasong_data(1 To 3) As Byte
fasong_data(1) = addr_h
fasong_data(2) = addr_l
fasong_data(3) = cmd
MSComm1.Output = fasong_data ' 发送数据
End Sub
这个里面的
MSComm1.Output = fasong_data ' 发送数据
改成
Main.MSComm1.Output = fasong_data ' 发送数据
展开全部
为什么不将MScomm1空间放在sett窗口中呢,在sett窗口初始化的时侯调用fasong()
或者将form_load()中串口初始化的代码替换下面的main.mscomm1.
如:main.mscomm1.commprot=2
。。。。。。。。
或者将form_load()中串口初始化的代码替换下面的main.mscomm1.
如:main.mscomm1.commprot=2
。。。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接调用main.mscomm1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将MSComm1定义到全局即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main.mscomm1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询