Gewusst wie: Durchführen eines Bildlaufs in einem Formular für Bezeichnungen

Aktualisiert: November 2007

Da ein Label-Steuerelement nicht den Fokus erhält und die Verwendung der TAB-TASTE nicht unterstützt, gestattet eine Smartphone-Anwendung, die nur aus Label-Steuerelementen besteht, dem Benutzer nicht, zu Bezeichnungen außerhalb des sichtbaren Clientbereichs des Formulars zu navigieren. Benutzer einer Pocket PC-Anwendung können die Bildlaufleisten zur Navigation verwenden, auf dem Smartphone steht diese Funktion jedoch nicht zur Verfügung.

Sie können die Navigation implementieren, indem Sie Code im Ereignishandler für das KeyDown-Ereignis angeben, mit dem die AutoScrollPosition-Eigenschaft angepasst wird.

So führen Sie in einem Formular von Label-Steuerelementen einen Bildlauf durch

  1. Fügen Sie dem Formular mehrere Label-Steuerelemente hinzu, sodass sich einige davon unterhalb des sichtbaren Clientbereichs befinden. Verwenden Sie im Microsoft Visual Studio 2005-Designer Pfeiltasten, oder schreiben Sie Initialisierungscode, um sie zu positionieren.

  2. Legen Sie im Konstruktor des Formulars die KeyPreview-Eigenschaft und die AutoScroll-Eigenschaft auf true fest. C#-Benutzer müssen einen Delegaten für den KeyDown-Ereignishandler anfügen.

    Me.KeyPreview = True
    Me.AutoScroll = True
    
    this.KeyPreview = true;
    this.KeyDown += new KeyEventHandler(Form1_KeyDown);
    this.AutoScroll = true;
    
  3. Legen Sie die AutoScrollPosition-Eigenschaft so fest, dass die y-Punktkoordinate um eine festgelegte Anzahl von Pixel vertikal verschoben wird. Im folgenden Codebeispiel wird der Wert 16 verwendet. Der Code ist kompliziert, da AutoScrollPosition um negative Werte versetzt wird, die angegebenen Punktwerte jedoch als positive Werte ausgedrückt werden müssen.

    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);
        }
    

Kompilieren des Codes

Für dieses Beispiel sind Verweise auf die folgenden Namespaces erforderlich:

Siehe auch

Konzepte

Gewusst-wie-Themen für .NET Compact Framework

Weitere Ressourcen

Smartphone-Entwicklung und .NET Compact Framework