使用 image 控件就可以了。
不要用 按钮控件。
Option Explicit Dim ButtonStatus() As Boolean '按钮图片状态用 Private Sub Form_Initialize() ReDim ButtonStatus(3) End Sub Private Sub Form_Load() Dim i As Integer With Form1 .Top = 0 .Left = 0 .Height = "背景图高" .Width = "背景图宽" .Picture = LoadPicture("背景图路径") End With For i = 0 To UBound(ButtonStatus) ButtonStatus(i) = False '按钮图片状态初始化 Next i End Sub Private Sub Image1_Click(Index As Integer) Select Case Index Case 0 If ButtonStatus(0) = True Then Image1(0).Picture = ImageList1.ListImages(0).Picture ButtonStatus(0) = False Call AAA '按下按钮0触发的事件内容 Else Image1(0).Picture = ImageList2.ListImages(0).Picture ButtonStatus(0) = True Call BBB '按下按钮0触发的事件内容 End If Case 1 If ButtonStatus(1) = True Then Image1(0).Picture = ImageList1.ListImages(1).Picture ButtonStatus(1) = False Call CCC '按下按钮1触发的事件内容 Else Image1(0).Picture = ImageList2.ListImages(1).Picture ButtonStatus(1) = True Call DDD '按下按钮1触发的事件内容 End If Case 2 If ButtonStatus(2) = True Then Image1(0).Picture = ImageList1.ListImages(2).Picture ButtonStatus(2) = False Call EEE '按下按钮2触发的事件内容 Else Image1(0).Picture = ImageList2.ListImages(2).Picture ButtonStatus(2) = True Call FFF '按下按钮2触发的事件内容 End If Case 3 If ButtonStatus(3) = True Then Image1(0).Picture = ImageList1.ListImages(3).Picture ButtonStatus(3) = False Call GGG '按下按钮3触发的事件内容 Else Image1(0).Picture = ImageList2.ListImages(3).Picture ButtonStatus(3) = True Call HHH '按下按钮3触发的事件内容 End If End Select End Sub