2015-10-26 139 views
0

我試圖讓一個按鈕從「箭頭左」改爲「箭頭右」圖片,當我點擊它時,但我不知道如何通過VBA分配圖像。我試過Me!btnCollapseUnscheduled.Picture = "Arrow Left",但是我收到了一條錯誤消息。如何使用VBA將按鈕的圖片更改爲嵌入的默認圖像之一?

+0

它只是一個設置爲單表單的按鈕嗎?或者是表單記錄中的按鈕設置爲連續表單? (也就是說,它可能會出現多次,並且您希望每個按鈕都能夠顯示不同於其他記錄中的圖像的圖像) –

+0

它只是一個窗體上的一個按鈕,因此不需要連續的窗體。 – Mike

+0

你想讓它在每次點擊時在左右箭頭之間來回切換嗎? –

回答

1

您可以創建兩個按鈕,一次只能看到一個按鈕,它們都調用相同的代碼。

單擊其中一個時,取消隱藏另一個,將焦點設置爲此,然後隱藏第一個按鈕。反之亦然。

+0

感謝您的建議。這是否意味着以編程方式將按鈕圖像設置爲其中一個默認值是不可能的? – Mike

+0

可能不會,但可能需要一段時間才能找出,並且它可能只在設計視圖中使用時纔有效。 – Gustav

2

訣竅是使用圖標的完整文件路徑。

MS-Access可能會使用一些圖標地圖作爲其本機圖標,因此您可能沒有太多的運氣獲取路徑之一。

如果您絕對找不到原生MS-Access圖標的路徑,您可以隨時對Google圖像搜索箭頭圖標(指定16 x 16像素的精確大小)。

然後,您可以將這些圖標保存到您選擇的文件夾中,然後在以下插圖中使用這些路徑。

如果你只是想按鈕來改變第一次點擊它的形象和留後這樣:

  1. 確保按鈕沒有附着在設計視圖中的圖片。
  2. 使用窗體的Open事件中使用你的命令按鈕的完整路徑指定默認的圖像:
Private Sub Form_Open(Cancel As Integer) 

    Me.cmdButton.Picture = "C:\myFolder\myDefaultIcon.png" 

End Sub 
  • 然後在按鈕的單擊事件,分配.picture財產在圖標路徑要將其更改爲:
  • Private Sub cmdButton_Click() 
    
        Me.cmdButton.Picture = "C:\myFolder\myChangedIcon.png" 
    
    End Sub 
    

    如果你只是想按鈕2個圖像之間進行切換每次點擊

    1. 使用切換按鈕控件,而不是一個命令按鈕控件
    2. 確保按鈕沒有附着在設計視圖中的畫面。
    3. 寫子,將處理您的切換按鈕的開/關狀態不同:
    Public Sub togImg() 
    
        If _ 
         Me.togButton = -1 _ 
        Then 
    
         Me.togButton.Picture = "C:\myFolder\myChangedIcon.png" 
    
        Else 
    
         Me.togButton.Picture = "C:\myFolder\myDefaultIcon.png" 
    
        End If 
    
    End Sub 
    
  • 從兩個窗體的Open事件和切換打電話給你的子按鈕的Click事件:
  • Private Sub Form_Open(Cancel As Integer) 
    
        togImg 
    
    End Sub 
    
    Private Sub togButton_Click() 
    
        togImg 
    
    End Sub 
    
    4

    在Access 2010或更高版本,可以存儲在MSysResources系統表的圖像。然後選擇共享爲您的命令按鈕的圖片類型屬性,然後選擇其中一個共享圖像。

    之後,很容易從命令按鈕的Click事件共享的圖像間切換。我叫我的命令按鈕「cmdArrow」和共享圖像「左箭頭」「向右箭頭」 ...

    Option Compare Database 
    Option Explicit 
    
    Private Sub cmdArrow_Click() 
        Dim strDirection As String 
    
        If Me!cmdArrow.Picture Like "*Left" Then 
         strDirection = "Right" 
        Else 
         strDirection = "Left" 
        End If 
        Me!cmdArrow.Picture = "Arrow " & strDirection 
        Me!txtImage.Value = Me!cmdArrow.Picture 
    End Sub 
    
    Private Sub Form_Load() 
        Me!txtImage.Value = Me!cmdArrow.Picture 
    End Sub 
    

    截圖:

    command button with Arrow Left image

    command button with Arrow Right image

    最大的挑戰將圖像加載到MSysResources。我創建了一次性表單並添加了一個命令按鈕。接下來,我選擇了嵌入式作爲按鈕的圖片類型屬性,並從可用的選項中選擇箭頭向左。然後,我從嵌入式共享,裏面加了一行MSysResources與附件場的圖像數據,並在名稱場我的命令按鈕的名稱改爲照片類型。於是我打開了桌子,將改名爲改爲「左箭頭」並關上桌子。注意:MSysResources除非您啓用「顯示系統對象」在導航選項不會在導航窗格中可見。

    我重複這些步驟「向右箭頭」。這聽起來可能很煩瑣,但它並不是一個很大的障礙。

    +0

    多好的技巧和小費。 – Gustav

    相關問題