TextBox 클래스를 사용하면 포맷되지 않은 텍스트를 표시하거나 편집할 수 있습니다. TextBox의 일반적인 용도는 양식에서 형식 없는 텍스트를 편집하는 것입니다. 예를 들어 사용자의 이름, 전화번호 등을 요청하는 양식에서는 텍스트 입력을 위한 TextBox 컨트롤을 사용합니다. 이 항목에서는 TextBox 클래스를 소개하고, XAML(Extensible Application Markup Language) 및 C#에서 이를 사용하는 방법에 대한 예제를 제공합니다.
TextBox 또는 RichTextBox?
TextBox 및 RichTextBox를 사용하면 사용자가 텍스트를 입력할 수 있지만, 두 컨트롤은 서로 다른 상황에서 사용됩니다. A TextBox는 RichTextBox보다 시스템 리소스를 덜 요구하므로 일반 텍스트만 편집해야 하는 경우에 이상적입니다(예: 양식에서 사용 시). 사용자가 서식 있는 텍스트, 이미지, 테이블 또는 기타 지원되는 콘텐츠를 편집하는 것이 필요할 경우 RichTextBox을 선택하는 것이 더 나은 선택입니다. 예를 들어, 서식 지정, 이미지 등이 필요한 문서, 기사 또는 블로그 편집은 RichTextBox를 사용하는 것이 가장 좋습니다. 아래 표는 TextBox 및 RichTextBox의 주요 기능을 요약합니다.
제어 | 실시간 맞춤법 검사 | 상황에 맞는 메뉴 | 서식 지정 명령, 예를 들어 ToggleBold (Ctr+B) | 이미지, 문단, 테이블 등의 콘텐츠 |
---|---|---|---|---|
TextBox | 예 | 예 | 아니오 | 아니요. |
RichTextBox | 예 | 예 | 예 (RichTextBox 개요 참조) | 예 (RichTextBox 개요 참조) |
비고
TextBox는 ToggleBold(Ctr+B)와 같은 편집 명령과 관련된 서식 지정을 지원하지 않지만, 많은 기본 명령이 MoveToLineEnd와 같은 두 컨트롤에서 모두 지원됩니다. 자세한 내용은 EditingCommands을 참조하세요.
TextBox에서 지원되는 기능은 아래 섹션에서 다룹니다. RichTextBox에 대한 자세한 내용은 RichTextBox 개요를 참조하세요.
실시간 맞춤법 검사
TextBox 또는 RichTextBox에서 실시간 철자 검사를 사용하도록 설정할 수 있습니다. 맞춤법 검사 기능이 켜져 있으면 맞춤법이 틀린 단어 밑에 빨간색 선이 나타납니다(아래 그림 참조).
맞춤법 검사 기능이 있는 텍스트 상자
텍스트 편집 컨트롤에서 맞춤법 검사를 사용하도록 설정하는 방법에 대해 알아보려면 맞춤법 검사 사용 설정을 참조하세요.
상황에 맞는 메뉴
기본적으로 TextBox와 RichTextBox에는 사용자가 컨트롤 내에서 마우스 오른쪽 단추를 클릭하면 나타나는 컨텍스트 메뉴가 있습니다. 상황에 맞는 메뉴를 통해 사용자는 항목을 잘라내거나, 복사하거나, 붙여넣을 수 있습니다(아래 그림 참조).
컨텍스트 메뉴가 있는 TextBox | Editing_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가 새 줄을 위한 공간이 포함되도록 다시 자동으로 확장됩니다.`
TextBox 사용과 관련된 다양한 작업에 대한 자세한 정보는 사용 방법 주제를 참조하세요.
콘텐츠가 변경되는 시점 감지
일반적으로 TextBox 또는 RichTextBox의 텍스트가 변경될 때마다 감지하려면 TextChanged 이벤트를 사용해야 하며, 이는 일반적인 예상과 달리 KeyDown 이벤트를 사용하지 않는 것을 의미합니다. 텍스트 상자에서 텍스트가 변경되는 시점을 감지하는 방법을 참조하세요.
참고하십시오
- 사용법 주제
- RichTextBox 개요
.NET Desktop feedback