VB一个窗体内有多个按钮,怎么简化代码?
一个窗体内有100多个按钮,近200个,要求每个按钮都是独立的,互不干扰,每个按钮的要求都是一样,按一下,背景色变红,再按一下恢复原来的颜色,奇数次为红色,偶数次为原来的...
一个窗体内有100多个按钮,近200个,要求每个按钮都是独立的,互不干扰,每个按钮的要求都是一样,按一下,背景色变红,再按一下恢复原来的颜色,奇数次为红色,偶数次为原来的颜色,请问能不能写一个简单的代码?不用在每一个按钮下面都写代码。
我写了一个,但是不起作用,只能是每一个按钮下面写代码。
Private Sub Command1_Click()
i = TabIndex + 1(TabIndex是按着顺序来的,和command的序号差一个)
a = a + 1
If a Mod 2 = 1 Then
Commandi.BackColor = RGB(255, 0, 0)
Else
Commandi.BackColor = &H8000000F
End If
End Sub
如果可以,再加一个小要求,按另外一个按钮,全部按钮的颜色恢复正常。
要快点。 展开
我写了一个,但是不起作用,只能是每一个按钮下面写代码。
Private Sub Command1_Click()
i = TabIndex + 1(TabIndex是按着顺序来的,和command的序号差一个)
a = a + 1
If a Mod 2 = 1 Then
Commandi.BackColor = RGB(255, 0, 0)
Else
Commandi.BackColor = &H8000000F
End If
End Sub
如果可以,再加一个小要求,按另外一个按钮,全部按钮的颜色恢复正常。
要快点。 展开
展开全部
如果你不用控件组,那是不可能的,你只能一个一个的把代码添加到每个command的事件下去
不过按键恢复全部,这个到可以
Private Sub Command1_Click()
Dim a As Control
For Each a In Me.Controls
Print a.Name
If Left(a.Name, 7) = "Command" Then'这里你要是看不懂我也就无语了
a.BackColor = vbRed
End If
Next
End Sub
不过按键恢复全部,这个到可以
Private Sub Command1_Click()
Dim a As Control
For Each a In Me.Controls
Print a.Name
If Left(a.Name, 7) = "Command" Then'这里你要是看不懂我也就无语了
a.BackColor = vbRed
End If
Next
End Sub
追问
这个,真不懂。%>_<%
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以研究下frm文件结构,自己写段代码把你的界面修改为楼上建议的格式,然后几行代码就可以全部搞定
追问
行,我试试,他都是txt格式存储的。
Begin VB.CommandButton Command1
Caption = "Command3"
Begin VB.CommandButton Command2
Caption = "Command2"
Begin VB.CommandButton Command1
Caption = "Command1"
发现点猫腻,按钮1是原来的,2是复制不是控件数组的额,3是复制1是控件数组的,可能就是上面一行不一样,要是的话,那就好改了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用控件数组好了,就是复制-粘贴的时候选是
更多追问追答
追问
很不幸,当时刚好没有点击,每次都是点否,现在也不想修改界面了,太麻烦了,主要看看代码。
追答
你要实现的功能不超过10行代码,你非得要两千行?脑子不好,你可以考虑动态添加并排列,另外建议使用option控件数组,修改风格后可以变成推拉按扭
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Command1_Click(Index As Integer)
Commandi.BackColor = RGB(255, 0, 0)
End Sub
Private Sub Command2_Click(Index As Integer)
Commandi.BackColor = &H8000000F
End Sub
Commandi.BackColor = RGB(255, 0, 0)
End Sub
Private Sub Command2_Click(Index As Integer)
Commandi.BackColor = &H8000000F
End Sub
追问
不行啊,显示“过程声明与同名事件或过程的描述不匹配”
追答
Private Sub Command1_Click(Index As Integer)
Command1(Index).BackColor = RGB(255, 0, 0)
End Sub
Private Sub Command2_Click(Index As Integer)
Command2(Index).BackColor = &H8000000F
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
100多个按钮,采用控件组。
实现方法,复制一个按钮,然后粘贴。内部实现让我再想想
Private Sub Command1_Click(Index As Integer)
End Sub
实现方法,复制一个按钮,然后粘贴。内部实现让我再想想
Private Sub Command1_Click(Index As Integer)
End Sub
更多追问追答
追问
关键是昨天晚上已经把按钮都做好了,190个,太麻烦了。复制粘贴时全部点了“否”,悲剧
追答
朋友,那如果以后要维护的话岂不是很麻烦?以后要维护什么,明明按钮出发的内容改一次就好,可是要改好多次了。
所以建议你重新写。
我有点眉目了,把点击次数记录到Caption属性当中,Caption的后两码用来记录点击次数。
要不我写好了,你先看一下吧,编程这东西全看兴趣
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询