Inquiridor
visible não funciona corretamente

Discussão Geral
-
Olá
Gente estou executando uma função para backup de um banco de dados mas estou com dois problemas.
1. O primeiro é que as vezes o form trava, mesmo usando o async, não sei oque pode estar faltando/errado;
2. O segundo é que "LABEL1.visible = true" não funciona, ou seja, mesmo executando ".visible = true" por primeiro e demorando o backup o LABEL1 não é exibido antes do processo.
Segue meu código:
Public Sub FazerBackup() LABEL1.Visible = True Try Using source As New SQLiteConnection(BancoDados_DataSource), destination As New SQLiteConnection("Data Source=" & sd.FileName & ";Version=3;New=True;Compress=True;Password=" & My.Resources.p & ";") source.OpenAsync() destination.OpenAsync() source.BackupDatabase(destination, "main", "main", -1, Nothing, 0) End Using Catch ex As Exception
MsgBox(ex.Message) End Try LABEL1.Visible = False End Sub
Quem puder me ajudar agradeço.
Todas as Respostas
-
Eliseu5,
Não sei é uma boa, mas você pode fazer um "Sleep".
Depois do "LABEL1.Visible = True".================================
VB .NET - 'Dando um tempo' no seu programa
http://www.macoratti.net/11/01/vbn_sleep.htm================================
Ou então fazer um "Refresh"... esse seria em cima do form.
================================
Método Control.Refresh ()
https://msdn.microsoft.com/pt-br/library/system.windows.forms.control.refresh(v=vs.110).aspx================================
Pode ser que ajude...
[]'s,
Fabio I.
- Editado Fabio I sexta-feira, 23 de março de 2018 20:11
-
Olá Fabio
Obrigado pelo interesse em me ajudar.
Eu já tentei sleep e não fez diferença.
Quanto ao refresh, coloquei depois do LABEL1.visible = true e funcionou perfeitamente.
Ficando assim:
Public Sub FazerBackup() LABEL1.Visible = True
me.Refresh()
Try Using source As New SQLiteConnection(BancoDados_DataSource), destination As New SQLiteConnection("Data Source=" & sd.FileName & ";Version=3;New=True;Compress=True;Password=" & My.Resources.p & ";") source.OpenAsync() destination.OpenAsync() source.BackupDatabase(destination, "main", "main", -1, Nothing, 0) End Using Catch ex As Exception MsgBox(ex.Message) End Try LABEL1.Visible = False End Sub
Muito obrigado!
-
Segue sugestão para teste.
Public Sub FazerBackup() LABEL1.Visible = True Application.DoEvents() Try Using source As New SQLiteConnection(BancoDados_DataSource), destination As New SQLiteConnection("Data Source=" & sd.FileName & ";Version=3;New=True;Compress=True;Password=" & My.Resources.p & ";") source.OpenAsync() destination.OpenAsync() source.BackupDatabase(destination, "main", "main", -1, Nothing, 0) End Using Catch ex As Exception MsgBox(ex.Message) End Try LABEL1.Visible = False End Sub
MARIANO1776
-
-