• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sir Pereira

Hotkeys

5 mensagens neste tópico

Boas pessoal,

estive a ler um artigo do nosso grande jpaulino e fiquei aqui com uma dúvida num artigo do teu blog:

http://vbtuga.blogspot.com/2008/09/vbnet-criando-hotkeys-teclas-de-atalho.html

Cria criar uma hotkey, por exemplo, Ctrl + Alt + Shift + H, que fizesse aparecer um form, mas não percebi ali a parte inicial do código:

    Public Enum HotKeyModifiers
        None = 0
        Alt = 1
        Control = 2
        Shift = 4
        Windows = 8
    End Enum

Será que me podiam explicar?

Abraço :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

        If e.KeyCode = System.Windows.Forms.Keys.F7 Then

          Form.Show

        End If

    End Sub

Vais às propriedades do form e metes KeyPreview como true.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

AS hotkeys são definidas no evento Form Load(), através da API RegisterHotKey.

Para definires uma nova, neste caso para Ctrl + Alt + Shift + H, deves fazer algo do género:

RegisterHotKey(0, HotKeyModifiers.Alt Or HotKeyModifiers.Shift Or HotKeyModifiers.Control, Keys.H)

E depois no método RegisterHotKeyExample_HotkeyPressedID, executas uma acção caso o ID seja 0 (que corresponde à tua combinação de teclas).

Algumas combinações não são possíveis através deste método, por isso testa e diz se funciona. Após esta frase deves calcular que não testei :)

@bioshock,

Isso apenas detectava quando carregas numa tecla com o form visível, e não como uma hotkey

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está-me a parecer é que ele não percebeu o que é uma Enum.

Uma Enum serve apenas para dar nomes amigáveis aos números.

Para não teres que decorar, por exemplo, que o número 8 corresponde à tecla Win.

Assim, daqui em diante, passas a usar HotKeyModifiers.Windows.

Na prática, repara o que fica mais bonito?

HKM = HotKeyModifiers.Alt + HotKeyModifiers.Shift

ou

HKM = 1 + 4

QUando voltares a olhar para o código daqui a uns meses ou anos, vais ver a utilidade que tem :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado jpaulino, e aos restantes, funciona perfeitamente :)

Abraço :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora