Como: Rolar um formulário de etiquetas
Porque um Label controle não recebe o foco e não oferece suporte a navegação por TAB, um aplicativo Smartphone que apenas Label controles não permite ao usuário navegar para rótulos além da área de cliente visível do formulário. O usuário de um aplicativo Pocket PC pode clicar nas barras de rolagem para navegar, mas essa funcionalidade não está disponível no Smartphone.
Você pode implementar a navegação, fornecendo código no manipulador de eventos para o KeyDown evento que ajusta o AutoScrollPosition propriedade.
Para rolar um formulário de controles de rótulo
Adicionar vários Label os controles para o formulário para que alguns fiquem abaixo da área de cliente visível. Use as teclas de seta no Microsoft Visual Studio 2005 Designer ou escreva código de inicialização para posicioná-los.
No construtor do formulário, defina o KeyPreview e AutoScroll propriedades para true. Os usuários translation from VPE for Csharp devem anexar um delegado para o KeyDown manipulador de eventos.
Me.KeyPreview = True Me.AutoScroll = True
this.KeyPreview = true; this.KeyDown += new KeyEventHandler(Form1_KeyDown); this.AutoScroll = true;
conjunto o AutoScrollPosition propriedade para mover verticalmente de um número definido de pixels para a y ponto de coordenada. O exemplo de código a seguir usa 16.Note que o código é complexo porque AutoScrollPosition é deslocado por valores negativos, mas sistema autônomo pontos fornecidos sistema autônomo valores devem ser expressos sistema autônomo positivo.
Private Sub Form1_KeyDown(ByVal Sender As System.Object, _ ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyCode = System.Windows.Forms.Keys.Up Then Me.AutoScrollPosition = New Point(0, -Me.AutoScrollPosition.Y - 16) End If If e.KeyCode = System.Windows.Forms.Keys.Down Then Me.AutoScrollPosition = New Point(0, -Me.AutoScrollPosition.Y + 16) End If End Sub
private void Form1_KeyDown(object sender, KeyEventArgs e) { if ((e.KeyCode == System.Windows.Forms.Keys.Up)) { this.AutoScrollPosition = new Point(0, -this.AutoScrollPosition.Y - 16); } if ((e.KeyCode == System.Windows.Forms.Keys.Down)) { this.AutoScrollPosition = new Point(0, -this.AutoScrollPosition.Y + 16); }
Compilando o código
Este exemplo requer referências aos seguintes namespaces:
Consulte também
Conceitos
Tópicos "como" do .NET compact estrutura