Partilhar via


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

  1. 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.

  2. 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;
    
  3. 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

Outros recursos

Desenvolvimento Smartphone e o .NET Compact Framework