VB 多个相同控件,相同事件,寻求简单方法

xscn1986 2017-08-07 03:20:22
用VB 写一个串口通讯的上位机,有许多按键发送数据,但是每个按键按下后发送内容都类似,只是个别字节不一样,目前是一个按键click事件一个函数来写的,基本都是复制粘贴,再改细节。
不知道有没有简单的方法,用一个函数来写,用参数的方法把按键号和区别的字节数据传进去,这样也容易维护;
或者有其他的什么方法实现这种功能。

Private Sub Command21_Click()
Dim Data(4) As Byte
If Form1.MSComm1.PortOpen = False Then
MsgBox "【请打开串口】", vbOKOnly, "提示"
Else
If Len(Text1.Text) = 0 Then
MsgBox " 请输入地址号!", vbOKOnly, "Warning"
GoTo finish
End If
Data(0) = &HAA
Data(1) = Val(Text1.Text)
Data(2) = &H14
Data(3) = &HB
Data(4) = &H11
Form1.MSComm1.Output = Data
Command21.BackColor = &HC000&
Command22.BackColor = &H8000000F
finish:
End If
End Sub
...全文
1939 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jthkl 2018-01-22
  • 打赏
  • 举报
回复
用控件数组。。。
nreg 2017-11-20
  • 打赏
  • 举报
回复
用控件数组的话可以这么干: Private Sub Text1_Click() for i =0 to text1.count-1 text1(i).text="OK" next i End Sub 不用控件数组的话可以这么干: Private Sub Text1_Click() text1.text="OK" End Sub Private Sub Text2_Click() call Text1_Click() End Sub ....... TEXT3 4 5 6 7 ...同理
zdingyun 2017-08-08
  • 打赏
  • 举报
回复
声明发送字节全局变量,在每个按键Click事件中对可能更改字节赋值,并执行发送过程。串口在窗体加载时就打开。不用MsgBox语句。在过程中执行指令发送。
of123 2017-08-08
  • 打赏
  • 举报
回复
控件数组的事件,会增加一个 Index 参数来区别当前控件。
脆皮大雪糕 2017-08-07
  • 打赏
  • 举报
回复
研究一下VB的控件数组
舉杯邀明月 2017-08-07
  • 打赏
  • 举报
回复
用控件数组呗。 在事件过程中,按“控件索引号”区分是哪个控件、处理相应的“不同数据”区。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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