방법: 레이블 폼 스크롤
업데이트: 2007년 11월
Label 컨트롤은 포커스를 받지 않으며 탭 기능을 지원하지 않으므로 Label 컨트롤의 Smartphone 응용 프로그램을 사용해서는 폼의 보이지 않는 클라이언트 영역에 있는 레이블을 탐색할 수 없습니다. Pocket PC 응용 프로그램을 사용할 경우 스크롤 막대를 눌러 탐색할 수 있지만 Smartphone에서는 이 기능을 사용할 수 없습니다.
AutoScrollPosition 속성을 조정하는 KeyDown 이벤트에 대한 이벤트 처리기에 코드를 제공하여 탐색을 구현할 수 있습니다.
레이블 폼 컨트롤을 스크롤하려면
몇 개의 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;
y 점 좌표의 픽셀 설정 수만큼 세로로 이동하도록 AutoScrollPosition 속성을 설정합니다. 다음 코드 예제에서는 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); }
코드 컴파일
이 예제에는 다음과 같은 네임스페이스에 대한 참조가 필요합니다.