Jump to content
Retsu9

Loading Form

Recommended Posts

Retsu9

Boas,

Preciso de ajuda para criar um Loading screen quando estou a carregar dados em datagrids, penso que nestes casos utiliza-se o background worker mas como nunca trabalhei com este componente estou um bocado as escuras.

Ora bem eu tenho o seguinte:

tenho vários botoes no formulario principal que quando são clicados apresentam um usercontrol no panel2 do splitcontainer (no form principal) da seguinte forma:

Private Sub btn_produtos_Click(sender As Object, e As EventArgs) Handles btn_produtos.Click
        exibir_userControl(1)
    End Sub
  
  Private Sub exibir_userControl(i As Integer)

        Select Case i
            Case 1
                If existe_controls() = True Then
                    SplitContainer1.Panel2.Controls.Clear()
                    produtos = New uc_produtos
                    produtos.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(produtos)
                Else
                    produtos = New uc_produtos
                    produtos.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(produtos)

                End If
            Case 2
                If existe_controls() = True Then
                    SplitContainer1.Panel2.Controls.Clear()
                    entradas = New uc_entradas
                    entradas.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(entradas)
                Else
                    entradas = New uc_entradas
                    entradas.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(entradas)
                End If
            Case 3
                If existe_controls() = True Then
                    SplitContainer1.Panel2.Controls.Clear()
                    saidas = New uc_saidas
                    saidas.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(saidas)
                Else
                    saidas = New uc_saidas
                    saidas.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(saidas)
                End If
            Case 4
                If existe_controls() = True Then
                    SplitContainer1.Panel2.Controls.Clear()
                    maquinas = New uc_maquinas
                    maquinas.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(maquinas)
                Else
                    maquinas = New uc_maquinas
                    maquinas.Size = SplitContainer1.Panel2.Size
                    SplitContainer1.Panel2.Controls.Add(maquinas)
                End If

        End Select



    End Sub

no load do usercontrol carrego a datagrid do mesmo:

   Private Sub uc_produtos_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        carregar_produtos(dg_produtos)
        txt_pesquisa.AutoCompleteCustomSource = produtos()
    End Sub

o procedimento para carregar as datagrids está num módulo à parte.

Agora tenho um form loading que gostava que fosse apresentado enquando as datagrids dos usercontrol's estão a ser preenchidas ou quando o user control está a ser carregado, não sei qual será a melhor opção.

Como devo fazer?

Cumpts.

Share this post


Link to post
Share on other sites
Retsu9

Alguém consegue dar uma mãozinha?

Eu sei que o erro é porque estou a aceder a componentes GUI dentro do DOwork, que não é suposto, mas não sei como dar a volta à situação :\

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.