【发布时间】:2010-12-14 23:38:39
【问题描述】:
我有一个带有几个按钮的表单。我想创建一个按钮,在按钮的每个功能完成后,一个接一个地执行所有按钮。另外,我想更改按钮的颜色以显示正在执行的按钮。 我该怎么做?
【问题讨论】:
-
@tksy 请使用标签 ms-access,而不是 access。谢谢。
我有一个带有几个按钮的表单。我想创建一个按钮,在按钮的每个功能完成后,一个接一个地执行所有按钮。另外,我想更改按钮的颜色以显示正在执行的按钮。 我该怎么做?
【问题讨论】:
最好不要将代码放在对象的事件中,例如点击事件。相反,应该将代码放入它们自己的方法中,这些方法由点击事件调用。然后当你需要运行一大堆它们时,你不需要调用每个按钮的点击事件,而是直接运行点击事件调用的每个方法。
Private Sub DoSomething()
'Code to do something
End Sub
Private Sub DoSomethingElse()
'Code to do something else
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs)
DoSomething
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs)
DoSomethingElse
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs)
DoSomething
DoSomethingElse
End Sub
这也使得代码更加可测试...并不是说代码在 Microsoft Office 应用程序中特别可测试。但这是一个常用的行业最佳实践。
【讨论】:
您所要做的就是在单个按钮的 Click 事件中调用按钮的 Click 事件。
Access 中的命令按钮也没有 BackColor 属性,解决方法是使用第三方工具,或者您可以使用图片并将其用作命令按钮的“图片”属性。
【讨论】:
Private Sub myUltraGroupingButton_Click()
Call cmdButton1_Click()
Call cmdButton2_Click()
Call cmdButton3_Click()
Call cmdButton4_Click()
End Sub
如果您想自动执行此操作并且如果它是一个表单,则需要遍历 Form.Controls。如果是工作表,我认为您需要使用Worksheet1.ListObjects
【讨论】:
我也有办法改变颜色。虽然我没有更改按钮的颜色,但我至少可以使用前景色选项更改按钮上标题的颜色。
【讨论】: