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