Olá amigos!
Estou aprendendo Visual Basic, utilizando o Visual Studio 2010 e hoje me deparei com a mesma necessidade e dificuldade. Depois de muito pesquisar e fazer testes, consegui o que precisava.
No meu caso eu usei esta função para criar um jogo da galinha (picturebox) atravessando a rua na vertical enquanto os carros (picturebox) passam na horizontal. Na ultima aula o professor ensinou a fazer os carros andarem automaticamente ao abrir o programa, mas não deu tempo de ele ensinar a controlar a galinha somente usando as setas do teclado.
Não sei se a sua situação é a mesma, mas talvez funcione.
1 - Você deve clicar no formulário onde irá acontecer a ação, localizar a propriedade "KeyPreview" e alterar para True. (desta forma o seu formulário passa a reconhecer o que é digitado);
2 - Ainda com o formulário selecionado, vá no Eventos deste formulário (ícone de um raio) e procure o evento KeyDown ou KeyUp (este método vai funcionar em qualquer um desses). Dê um duplo clique sobre o nome para abrir a linha de código.
3 - No código fonte, dentro do evento que você clicou, você vai digitar um If (ou Select Case, o que você achar melhor. No meu caso usei um If), e vai digitar o seguinte código:
If e.KeyValue = Keys.Up Then
moverGalinhaParaCima(pctGalinha, 10)
End If
Este If irá validar se a tecla "seta para cima" foi pressionada. Caso sim, o código irá chamar a função que moverá a picturebox da Galinha em 10 pixels. Lembrando que não há a necessidade de criar uma função para isto, você pode digitar toda a ação dentro do If.
Depois para as outras setas segue o mesmo raciocínio, basta mudar para Keys.Down, Keys.Left ou Keys.Right
Agora só me falta bolar o raciocínio em que o jogo detecta que a picturebox da galinha encostou na picturabox do carro para fazer com que dê Game Over. rsrsrs