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
如果可以,再加一个小要求,按另外一个按钮,全部按钮的颜色恢复正常。

要快点。
展开
 我来答
floatingsnows
2012-03-21 · TA获得超过1798个赞
知道小有建树答主
回答量:1318
采纳率:66%
帮助的人:423万
展开全部
如果你不用控件组,那是不可能的,你只能一个一个的把代码添加到每个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
追问
这个,真不懂。%>_<%
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂族魔帝
2012-03-21 · TA获得超过367个赞
知道小有建树答主
回答量:596
采纳率:0%
帮助的人:406万
展开全部
你可以研究下frm文件结构,自己写段代码把你的界面修改为楼上建议的格式,然后几行代码就可以全部搞定
追问
行,我试试,他都是txt格式存储的。
Begin VB.CommandButton Command1
Caption = "Command3"
Begin VB.CommandButton Command2
Caption = "Command2"
Begin VB.CommandButton Command1
Caption = "Command1"
发现点猫腻,按钮1是原来的,2是复制不是控件数组的额,3是复制1是控件数组的,可能就是上面一行不一样,要是的话,那就好改了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zx001z7d53
2012-03-21 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5693万
展开全部
用控件数组好了,就是复制-粘贴的时候选是
更多追问追答
追问
很不幸,当时刚好没有点击,每次都是点否,现在也不想修改界面了,太麻烦了,主要看看代码。
追答
你要实现的功能不超过10行代码,你非得要两千行?脑子不好,你可以考虑动态添加并排列,另外建议使用option控件数组,修改风格后可以变成推拉按扭
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzqwz
2012-03-21 · TA获得超过481个赞
知道小有建树答主
回答量:870
采纳率:0%
帮助的人:561万
展开全部
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
追问
不行啊,显示“过程声明与同名事件或过程的描述不匹配”
追答
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丙书傲a
2012-03-21 · TA获得超过320个赞
知道小有建树答主
回答量:328
采纳率:42%
帮助的人:148万
展开全部
100多个按钮,采用控件组。
实现方法,复制一个按钮,然后粘贴。内部实现让我再想想
Private Sub Command1_Click(Index As Integer)

End Sub
更多追问追答
追问
关键是昨天晚上已经把按钮都做好了,190个,太麻烦了。复制粘贴时全部点了“否”,悲剧
追答
朋友,那如果以后要维护的话岂不是很麻烦?以后要维护什么,明明按钮出发的内容改一次就好,可是要改好多次了。
所以建议你重新写。

我有点眉目了,把点击次数记录到Caption属性当中,Caption的后两码用来记录点击次数。
要不我写好了,你先看一下吧,编程这东西全看兴趣
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式