Ir para conteúdo
Fórum Script Brasil
  • 0

Threads [vb2005]


Vader

Pergunta

Olá pessoal.

Me deparei com um problema interessante e que eu não tinha no vb 2003. Quando tento acessar um text ou qualquer outra coisa do meu form dentro de um thread ele me volta um erro que não é possível. Aqui no fórum achei a resposta e consegui fazer funcionar usando o invoke.

Mas o que ainda não consegui foi ativar a propriedade visible do ToolStripProgressBar. Não achei o invoke para tentar usar o código:

If Me.text1.InvokeRequired Then
        Dim d As New SetTextCallback(AddressOf dados)
        Me.Invoke(d, New Object() {[text]})
Else
        text1.text= [text]
End If

Muito obrigado

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

A idéia é a mesma, veja:

    Public Delegate Sub Delegação(ByVal b As Boolean)

    Public Sub Visível(ByVal b As Boolean)
        If ProgressBar1.InvokeRequired Then
            Dim d As New Delegação(AddressOf Visível)
            ProgressBar1.Invoke(d, b)
        Else
            ProgressBar1.Visible = b
        End If
    End Sub

    Public Sub TesteThread(ByVal obj As Object)
        Visível(False)
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim t As New Threading.Thread(AddressOf TesteThread)
        t.Start()
    End Sub

Mas, é mesmo um ToolStripProgressBar? Não achei isso aqui. Existem alguns ToolStrips e a ProgressBar, mas não os dois juntos.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0
Mas, é mesmo um ToolStripProgressBar? Não achei isso aqui. Existem alguns ToolStrips e a ProgressBar, mas não os dois juntos.

Então Gray, tem sim... primeiro você adiciona um StatusStrip e nele clica no botaozinho para adicionar e tem a opção de um ProgressBar que fica nele. E o nome padrão que dá é ToolStripProgressBar. E esta beronga não tem o InvokeRequired.

Consegui!!!

Fiz assim:


  Public Sub Visível(ByVal b As Boolean)
        If StatusStrip1.InvokeRequired Then
            Dim d As New Delegação(AddressOf Visível)
            StatusStrip1.Invoke(d, b)
        Else
            ToolStripProgressBar1.Visible = b
        End If
    End Sub

valeu Gray

Link para o comentário
Compartilhar em outros sites

  • 0
Mas, é mesmo um ToolStripProgressBar? Não achei isso aqui. Existem alguns ToolStrips e a ProgressBar, mas não os dois juntos.

Então Gray, tem sim... primeiro você adiciona um StatusStrip e nele clica no botaozinho para adicionar e tem a opção de um ProgressBar que fica nele. E o nome padrão que dá é ToolStripProgressBar.

Legal! Não sabia disso não... vivendo e aprendendo! :)

Consegui!!!

Fiz assim:


  Public Sub Visível(ByVal b As Boolean)
        If StatusStrip1.InvokeRequired Then
            Dim d As New Delegação(AddressOf Visível)
            StatusStrip1.Invoke(d, b)
        Else
            ToolStripProgressBar1.Visible = b
        End If
    End Sub

valeu Gray

Beleza então. :)

Fechando o tópico.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...