2015-08-03 6 views
0

Я пытаюсь обновить свою форму пользователя Updating (что по существу является индикатором выполнения). Он не обновляется в первый раз, когда вызывается пользовательская форма, и во второй раз он обновляет только описание ярлыка, а не ширину панели. Я тестирую его с помощью процедуры TestUpdate, показанной ниже.Userform не обновляется должным образом

Что я делаю неправильно?

Sub UpdateUpdatingUF(filenum As Integer, filecount As Integer) 
    Dim filenumdbl As Double 
    Dim filecountdbl As Double 
    Dim boxwidth As Integer 
    Dim barwidth As Integer 
    Dim boxwidthdbl As Double 
    filenumdbl = CDbl(filenum) 
    filecountdbl = CDbl(filecount) 
    boxwidthdbl = CDbl(boxwidth) 
    boxwidth = 300 
    barwidth = CInt(boxwidthdbl * filenumdbl/filecountdbl) 
    With Updating 
     .Label3.Caption = "Running file: " & CStr(filenum) & "/" & CStr(filecount) 
     .ProgressBar.Width = barwidth 
    End With 
End Sub 
Sub TestUpdate() 
    Updating.Show 
    Call UpdateUpdatingUF(3, 7) 
    DoEvents 
    Updating.Repaint 
End Sub 

Я знаю, что я, вероятно объявить слишком много переменных, но я стараюсь, чтобы убедиться, что это не причина.

ответ

1

Заменить

Updating.Show 

с

Updating.Show vbModeless 
+1

Вы имеете в виду 'Updating.Show VbModeless' или' Updating.Show (False) '? Вы можете добавить объяснение, почему нужно это сделать :) –

+0

i get error 446 - «объект не поддерживает именованные аргументы» – duhamp

+0

'update.show vbmodeless' работает, чтобы изменить текст, но панель не изменяется – duhamp

Смежные вопросы