TextBox 개요
TextBox 클래스를 사용하면 포맷되지 않은 텍스트를 표시하거나 편집할 수 있습니다. TextBox의 일반적인 용도는 양식에서 형식이 지정되지 않은 텍스트를 편집하는 것입니다. 예를 들어 사용자의 이름, 전화 번호 등을 요청하는 양식에서는 텍스트 입력에 TextBox 컨트롤을 사용합니다. 이 항목에서는 TextBox 클래스를 소개하고 XAML(Extensible Application Markup Language) 및 C#에서 사용하는 방법에 대한 예제를 제공합니다.
TextBox 또는 RichTextBox?
TextBox 및 RichTextBox를 사용하면 사용자가 텍스트를 입력할 수 있지만 두 컨트롤 모두 서로 다른 시나리오에 사용됩니다. TextBox는 RichTextBox보다 적은 시스템 리소스를 필요로 하므로 일반 텍스트만 편집해야 하는 경우(예: 양식 사용) 이상적입니다. 사용자가 서식 있는 텍스트, 이미지, 테이블 또는 기타 지원되는 콘텐츠를 편집해야 할 경우 RichTextBox를 선택하는 것이 좋습니다. 예를 들어 서식 지정, 이미지 등이 필요한 문서, 기사 또는 블로그를 편집하는 경우 RichTextBox를 사용하는 것이 좋습니다. 아래 표에는 TextBox 및 RichTextBox의 기본 기능이 요약되어 있습니다.
제어 | 실시간 맞춤법 검사 | 상황에 맞는 메뉴 | ToggleBold(Ctr+B)와 같은 서식 지정 명령 | 이미지, 문단, 테이블 등과 같은 FlowDocument 콘텐츠 |
---|---|---|---|---|
TextBox | 예 | 예 | 예 | 아니요. |
RichTextBox | 예 | 예 | 예(RichTextBox 개요 참조) | 예(RichTextBox 개요 참조) |
참고
TextBox는 ToggleBold(Ctr+B)와 같은 편집 명령과 관련된 서식 지정을 지원하지 않지만, 많은 기본 명령이 MoveToLineEnd와 같은 두 컨트롤에서 모두 지원됩니다. 자세한 내용은 EditingCommands 을 참조하세요.
TextBox에서 지원되는 기능은 아래 섹션에서 다룹니다. RichTextBox에 대한 자세한 내용은 RichTextBox 개요를 참조하세요.
실시간 맞춤법 검사
TextBox 또는 RichTextBox에서 실시간 철자 검사를 사용하도록 설정할 수 있습니다. 맞춤법 검사 기능이 켜져 있으면 맞춤법이 틀린 단어 밑에 빨간색 선이 나타납니다(아래 그림 참조).
맞춤법 검사 기능이 있는 TextboxEditing_TextBox_with_Spellchecking
맞춤법 검사를 사용하도록 설정하는 방법에 대한 자세한 내용은 텍스트 편집 컨트롤에서 맞춤법 검사 사용을 참조하세요.
상황에 맞는 메뉴
기본적으로 TextBox 및 RichTextBox에는 사용자가 컨트롤 내에서 마우스 오른쪽 단추를 클릭하면 나타나는 바로 가기 메뉴가 있습니다. 상황에 맞는 메뉴를 통해 사용자는 항목을 잘라내거나, 복사하거나, 붙여넣을 수 있습니다(아래 그림 참조).
컨텍스트 메뉴가 있는 TextBoxEditing_TextBox_with_Context_Menu
자체적인 사용자 지정 상황에 맞는 메뉴를 만들어 기본 동작을 재정의할 수 있습니다. 자세한 내용은 TextBox에 사용자 지정 컨텍스트 메뉴 사용을 참조하세요.
TextBox 만들기
TextBox는 높이가 한 줄일 수도 있고 여러 줄로 구성될 수도 있습니다. 한 줄 TextBox는 소량의 일반 텍스트(예: 양식에서 “이름”, “전화 번호” 등)를 입력하는 데 가장 적합합니다. 다음 예제에서는 한 줄 TextBox를 만드는 방법을 보여 줍니다.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<TextBox Width="200" MaxLength="100" />
</StackPanel>
</Page>
사용자가 여러 줄의 텍스트를 입력할 수 있는 TextBox를 입력할 수도 있습니다. 예를 들어 양식에서 사용자의 경력 요약을 요청한 경우 여러 줄 텍스트를 지원하는 TextBox를 사용해야 합니다. 다음 예제에서는 XAML(Extensible Application Markup Language)을 사용하여 여러 줄 텍스트를 수용하도록 자동으로 확장되는 TextBox 컨트롤을 정의하는 방법을 보여 줍니다.
<TextBox
Name="tbMultiLine"
TextWrapping="Wrap"
AcceptsReturn="True"
VerticalScrollBarVisibility="Visible"
>
This TextBox will allow the user to enter multiple lines of text. When the RETURN key is pressed,
or when typed text reaches the edge of the text box, a new line is automatically inserted.
</TextBox>
TextWrapping 특성을 Wrap
으로 설정하면 TextBox 컨트롤의 에지에 도달하면 텍스트가 새 줄로 줄바꿈되고, 필요한 경우 새 줄을 위한 공간이 포함되도록 TextBox 컨트롤이 자동으로 확장됩니다.
AcceptsReturn 특성을 true
로 설정하면 RETURN 키를 누를 때 새 줄이 삽입되고, 필요한 경우 새 줄을 위한 공간이 포함되도록 TextBox가 다시 자동으로 확장됩니다.
VerticalScrollBarVisibility 특성은 TextBox에 스크롤 막대를 추가하여 TextBox가 둘러싼 프레임 또는 창의 크기를 초과할 경우 TextBox의 콘텐츠를 스크롤할 수 있도록 합니다.
TextBox 사용과 연결된 다양한 작업에 대한 자세한 내용은 방법 항목을 참조하세요.
콘텐츠가 변경되는 시점 감지
일반적으로 TextChanged 이벤트는 예상대로 KeyDown이 아니라 TextBox 또는 RichTextBox의 텍스트가 변경될 때마다 감지하는 데 사용해야 합니다. 예제를 보려면 TextBox에서 텍스트가 변경되는 시점 감지를 참조하세요.
참고 항목
.NET Desktop feedback