AJUDA COM OPERACAO

PHANTOM 02/11/2010 17:58:30
#356472
Olá.
Como eu faço para desativar temporariamente o click do mouse na minha aplicação quando estiver realizando uma operação mais demorada?

Por exemplo, tenho um programa que carrega informações de um bd ou de um arquivo qualquer, a operação de carregamento pode demorar um pouco então eu mudo o cursor do mouse para hourglass (a ampulheta) e desativo o click do mouse até ela ser completada.

Como eu faço pra desativar o click durante esta operação?


Obrigado.
RODRIGOFERRO 02/11/2010 21:07:27
#356482
De uma lida aqui oh

http://www.codeproject.com/KB/vb/LockKeyboard.aspx
Abraços
PHANTOM 06/11/2010 19:42:48
#356800
Olá Zerocal, obrigado por responder. Mas não funcionou essa solução que vc indicou.
JONATHANSTECKER 07/11/2010 08:17:39
#356826
Resposta escolhida
PHANTOM

Eu costumo usar um método Habilitar e Desabilitar os controles para isso!

 Protected Sub habilitarControles(ByVal autorizar As Boolean)
Me.Button1.Enabled = autorizar
Me.Button2.Enabled = autorizar
End Sub

Private Sub btnCarregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCarregar.Click
Me.habilitarControles(False)
Me.Carregar()
Me.habilitarControles(True)
End Sub


Mas tem uma opção de bloquear o mouse. Que já usei para uma situação mais crítica.

 Declare Function BlockInput Lib [Ô]User32[Ô] _
(ByVal fBlockIt As Boolean) As Boolean

Sub Carregar()
BlockInput(True)
[ô] Seu procedimento.
System.Threading.Thread.Sleep(1000)
BlockInput(False)
End Sub
PHANTOM 15/11/2010 16:09:40
#357496
Olá, testei as duas soluções que você indicou Jonathan, a primeira é mais adequada que a segunda. Pq nesta última, o usuário pode pensar que o pc travou durante a operação e dar CTRL+ALT+DEL ou reiniciar o computador, podendo danificar o banco de dados, por exemplo.
A primeira eu já tinha pensado em fazer, mas usando um loop nos controles do form. De qqr forma obrigado pela ajuda!
Tópico encerrado , respostas não são mais permitidas