2013-12-17 48 views
0

在我的程序中,我正在使用計時器使圖片框可見並且經過一定的時間後,通過使用圖片框(1-9).visible = true/false使它們不可見。檢測啓用了多少項目

最後,我必須計算在任何給定時間有多少圖片框可見。

我無法弄清楚我已經嘗試將它們添加到一個變量,但計時器每秒都會反覆。我幾乎不知道該怎麼辦

+3

請說明您的具體問題或添加額外的細節,突顯正是你需要的。正如目前所寫,很難確切地說出你在問什麼。 – 2013-12-17 14:36:42

+0

您的圖片框在Access中嗎?你的代碼到目前爲止看起來如何? – Mike

+0

每次你改變'PictureBox'的可見性時,都會改變'NumberVisible'變量的值。如果你只是隱藏了一個'PictureBox',從'NumberVisible'減去1。如果您剛剛顯示了一個「PictureBox」,請將「NumberVisible」的值加1。在啓動定時器之前,您需要知道有多少可見,但這與檢查每個「PictureBox」的可見性屬性一樣簡單。 – Stewbob

回答

1

你需要檢查picturebox(1-9).visible本身。可以設置相同的變量,也可以檢查給定的值。

只需遍歷表單中的所有圖片框並檢查其可見屬性。

Sub foo() 

Dim ct As Control 
Dim sum As Integer 
sum = 0 

For Each ct In Me.Controls 

    If TypeName(ct) = "Image" Then 
     If ct.Visible = False Then 
      sum = sum + 1 
     End If 
    End If 

Next 

MsgBox sum 

End Sub 
2

該代碼可用於在工作表上的圖像,但可以很容易地修改你的地方是pictureboxes:

'Count the visible number before starting. 
Dim NumberVisible As Integer 
NumberVisible = 0 
For i = 1 To 9 
    If myWorkSheet.Shapes(i).Visible = msoTrue Then 
     NumberVisible = NumberVisible + 1 
    End If 
Next 

'.... 
'Start timer, do timer code here. 
'.... 
myWorkSheet.Shapes(i).Visible = msoTrue 
NumberVisible = NumberVisible + 1 

'... 
myWorkSheet.Shapes(i).Visible = msoFalse 
NumberVisible = NumberVisible - 1 
相關問題