2013-12-17 26 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 
相关问题