我有一个带标签的按钮,按钮在单击后执行vba事件。我希望在事件结束后更改按钮上的标签和字体颜色。完成此任务的最佳方法是什么?我尝试使用Me!ActiveControl.Name
但发现它是只读的,并且无法使用它更改名称。我应该注意表单执行一些sql并返回结果。我想要更改标签的按钮对从搜索/ SQL查询返回的每个记录执行操作。我还要注意,在SQL返回结果并且结果中的某些字段包含数据之后,按钮上的初始标签由控件源属性设置。
相关代码发布在下方。
Dim ctlLabelName As Control
Set ctlLabelName = Screen.ActiveControl
'A Whole bunch of stuff is here'
MsgBox "Hello" & ctlLabelName & "there", vbOKOnly, "Label Name"
Me!ReprocessInvoice.Name = "processed"
答案 0 :(得分:1)
“访问”命令按钮具有Caption
属性。它是显示给用户的文本。文本内容和颜色都可以在运行时更改。
在此示例中,命令按钮名为 cmdTarget ,其标题文本设置为"在Form Load中以蓝色单击我" 。单击该按钮时,文本将更改为"已处理" 为黑色。
Option Compare Database
Option Explicit
Private Sub cmdTarget_Click()
' do other stuff here, then change caption and text color ...
Me.cmdTarget.Caption = "processed"
Me.cmdTarget.ForeColor = vbBlack
End Sub
Private Sub Form_Load()
Me.cmdTarget.Caption = "click me"
Me.cmdTarget.ForeColor = vbBlue
End Sub
实际上,将按钮的名称从 cmdTarget 更改为其他内容必须在设计模式下完成...您无法执行此操作在窗体视图中打开窗体。但我无法想出从代码中更改按钮名称的充分理由。
答案 1 :(得分:0)
你能发布你的代码吗?
您应该能够通过使用来控制该控件
MyFormName.Controls(ActiveControl.Name).SomeProperty
答案 2 :(得分:0)
您无法在运行时更改控件的名称。