Clique aqui para ler todos os artigos desta edição
Criando uma Barra de Progresso
por Duncan Mackenzie
Este artigo discute |
Este artigo usa as seguintes tecnologias: |
· Controle personalizado · Interface com usuário |
Visual Basic .NET Download: AdvancedBasics0410.exe (151KB) |
Chapéu Windows Form |
|
Em muitas situações, estimar com precisão a duração de um determinado processo (copiar um arquivo grande, carregar dados a partir de um servidor, recuperar arquivos da Internet) pode ser igualmente difícil e ineficaz. No final das contas, o que existe é um processo que leva tempo suficiente para que o usuário aguarde, porém você não tem uma maneira fácil de indicar a porcentagem da tarefa que foi concluída. Uma barra de progresso regular seria um tanto menos sugestiva, e você precisaria de algum tipo de indicador "Working…".
O Windows® geralmente usa o ícone animado do Windows no canto superior direito do Microsoft® Internet Explorer durante a carga da página, e você pode criar e exibir seu próprio arquivo AVI ou GIF animado GIF se quiser personalizá-lo um pouco. Pessoalmente, prefiro usar uma abordagem mais flexível — um controle de barra de progresso animado e repetitivo. O uso de um controle me permite configurar a aparência da animação para diferentes aplicativos, e é muito mais fácil de incorporá-lo à UI de um Windows Forms.
Nesta artigo, vou ajudá-lo a implementar um controle de usuário personalizado — uma barra de progresso animada que executa círculos contínuos. O estilo próprio deste controle foi inspirado em uma noite que passei assistindo à UI de instalação do Windows XP. Ao final da instalação, os pequenos quadrados verdes hipnóticos haviam se fixado em meu cérebro, e senti uma necessidade incontrolável de tentar recriar alguma coisa semelhante em meu próprio controle. É claro, nem todo mundo gosta de quadrados verdes, por isso tentarei facilitar ao máximo a configuração da aparência do controle. O resultado será uma barra de progresso que exibe quadrados ou círculos e que expõe propriedades para controlar a velocidade da animação, o tamanho dos elementos gráficos, e muito mais (veja a Figura 1). O indicador de progresso propriamente dito será uma forma simples (círculo ou quadrado) desenhada de maneira um pouco maior do que o restante, que dará a impressão de se mover no controle em uma taxa fixa.
Figura 1 Minha Barra de Progresso
Que Tipo de Controle Você Deve Usar?
Quando desenvolvo com o Windows Forms, gosto de classificar o controle do desenvolvimento em três categorias: controles de usuário, controles herdados e controles personalizados. Os controles de usuário são os controles de estilo do Visual Basic® tradicional (pré-.NET), uma superfície de design na qual você combina vários outros controles. Os controles herdados permitem que você crie em cima de controles existentes, tais como o TextBox, escreva apenas o código de que precisa e obtenha toda a funcionalidade existente gratuitamente. Por fim, os controles personalizados herdam apenas da classe base do Control e são perfeitos para as situações em que você quer efetuar todo o trabalho gráfico por conta própria. Aqui, utilizo um controle personalizado porque não pretendo hospedar nenhum outro controle e estarei fazendo todo o desenho por conta própria.
Sempre que inicio um controle personalizado, crio um projeto Class Library e depois, inicio uma classe control com o código mostrado na Listagem
Listagem 1 Escrevendo um Novo Controle Personalizado
Imports System.Windows.Forms
Imports System.Drawing
Public Class NoProgressBar
Inherits Control
...