Progress bar clique (Compact Framework)
-
06-07-2019 - |
Pergunta
Eu estou usando uma barra de progresso para exibir o status da bateria. Se o usuário clicar na barra de progresso eu quero mostrar um popup com detalhes.
Excluindo a solução que exige a verificação se os coordonates clique está nos limites da barra de progresso tem alguém encontrou outra solução ou uma solução para isso?
Solução
OK, uma maneira mais fácil de fazer o controle personalizado é apenas para começar com um UserControl, soltar um ProgressBar sobre ele e encaixá-lo para que ele preenche o UserControl, em seguida, expor o ProgressBar como uma propriedade pública do UserControl, de modo que seu código diria
myProgressBar1.ProgressBar.Max = 100
em vez de
progressBar1.Max = 100
Em seguida, basta usar o evento Click do usercontrol para mostrar os detalhes (eu acho que você pode ter que desativar o ProgressBar interior para o clique ao trabalho, mas isso não deve afetar a aparência da barra de progresso).
Desta forma, o controle de usuário se parece exatamente com uma barra de progresso regulares (e, portanto, como ass). :)
Outras dicas
forma boa Além disso, é geralmente considerado somente controles de uso na maneira que os usuários estão acostumados a. As barras de progresso são destinados (e tradicionalmente usado) apenas para exibir informações. É por isso que eles removeram todos os eventos de interação em Compact Framework.
Eu acho que uma abordagem melhor seria deixar a barra de progresso como ela é, e adicionar um "Detalhes" LinkLabel acima ou ao lado do bar.
Eu sempre acabou de escrever minha própria usercontrol ProgressBar personalizado. Demora talvez 5 minutos para escrever, e as built-in de progresso aparência de controle de bar como bunda de qualquer maneira.
Eu acho que pode ser possível usar a reflexão para isso, mas seria mais fácil simplesmente escrever seu próprio controle.
Update:. Eu apenas tentei lançar o ProgressBar como um controle (que tem um evento Click) e, em seguida, atribuir um manipulador de eventos no código, mas isso não parece trabalho