Picturebox будет скрыт во время выполнения длинного цикла - PullRequest
0 голосов
/ 08 апреля 2020

Я показываю графическое окно, содержащее gif-фотографию во время выполнения моего кода:

Me.PicLoading.Visible = True
Call xCLS.MyCodes_GetID("tbl_cities", Me.t1)
Me.PicLoading.Visible = False

, и это работает очень хорошо, но когда я использую длинную процедуру с длинным «Для L oop», Поле PictureBox становится скрытым, и после выполнения l oop поле изображения становится видимым. эта проблема происходит только с l oop.

следующим кодом является l oop:

Public Sub MyCodes_GetID(ByVal TblName As String, ByVal TxT As TextBox)
    Dim xCount, i As Integer
    Dim xDtCount As DataTable = New DataTable()

    MyCodes_Fill_DataTable("Select ID From " & TblName & " Order By ID", xDtCount)
    xCount = Convert.ToInt32(xDtCount.Rows.Count)

    For i = 1 To xCount
        Dim xCountID As Byte
        Dim xDtCountID As DataTable = New DataTable()
        MyCodes_Fill_DataTable("Select ID From " & TblName & " Where ID = " & i & "", xDtCountID)
        xCountID = Convert.ToInt32(xDtCountID.Rows.Count)
        If xCountID = 0 Then
            GoTo Line1
        End If
    Next
Line1:
        TxT.Text = CStr(i)
    End Sub

любые комментарии

1 Ответ

0 голосов
/ 08 апреля 2020

Поток пользовательского интерфейса слишком занят обработкой вашего кода для отображения PictureBox. Вам нужно вызвать метод Refresh перед выполнением работы, чтобы сначала перекрасить его.

Ваш GIF не будет анимирован по той же причине. Делайте длительные задачи асинхронно. Если вы не знаете как, пришло время учиться. Это выходит за рамки этого вопроса.

...