如何:滚动标签窗体
更新:2007 年 11 月
因为 Label 控件不接收焦点并且不支持 Tab 键导航功能,所以那些仅有 Label 控件的 Smartphone 应用程序不允许用户定位到窗体的可见工作区之外的标签。Pocket PC 应用程序用户可以点击滚动条来进行定位,但是此功能在 Smartphone 上不可用。
您可以通过在 KeyDown 事件的事件处理程序中提供用于调整 AutoScrollPosition 属性的代码来实现导航。
滚动标签控件的窗体
将多个 Label 控件添加到窗体,使某些控件在可见工作区下。使用 Microsoft Visual Studio 2005 设计器中的箭头键或编写初始化代码来定位它们。
在窗体的构造函数中,将 KeyPreview 和 AutoScroll 属性设置为 true。C# 用户必须为 KeyDown 事件处理程序附加一个委托。
Me.KeyPreview = True Me.AutoScroll = True
this.KeyPreview = true; this.KeyDown += new KeyEventHandler(Form1_KeyDown); this.AutoScroll = true;
将 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); }
编译代码
此示例需要引用下面的命名空间: