如何:滚动标签窗体

更新:2007 年 11 月

因为 Label 控件不接收焦点并且不支持 Tab 键导航功能,所以那些仅有 Label 控件的 Smartphone 应用程序不允许用户定位到窗体的可见工作区之外的标签。Pocket PC 应用程序用户可以点击滚动条来进行定位,但是此功能在 Smartphone 上不可用。

您可以通过在 KeyDown 事件的事件处理程序中提供用于调整 AutoScrollPosition 属性的代码来实现导航。

滚动标签控件的窗体

  1. 将多个 Label 控件添加到窗体,使某些控件在可见工作区下。使用 Microsoft Visual Studio 2005 设计器中的箭头键或编写初始化代码来定位它们。

  2. 在窗体的构造函数中,将 KeyPreviewAutoScroll 属性设置为 true。C# 用户必须为 KeyDown 事件处理程序附加一个委托。

    Me.KeyPreview = True
    Me.AutoScroll = True
    
    this.KeyPreview = true;
    this.KeyDown += new KeyEventHandler(Form1_KeyDown);
    this.AutoScroll = true;
    
  3. AutoScrollPosition 属性设置为在 y 点坐标中垂直移动设定的像素数。下面的代码示例使用 16。请注意,该代码有些复杂,因为 AutoScrollPosition 以负值为偏移值,但是提供的点值必须表示为正值。

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

编译代码

此示例需要引用下面的命名空间:

请参见

概念

.NET Compact Framework 帮助主题

其他资源

Smartphone 开发和 .NET Compact Framework