TextBox 개요

TextBox 클래스를 사용하면 포맷되지 않은 텍스트를 표시하거나 편집할 수 있습니다. TextBox의 일반적인 용도는 양식에서 형식이 지정되지 않은 텍스트를 편집하는 것입니다. 예를 들어 사용자의 이름, 전화 번호 등을 요청하는 양식에서는 텍스트 입력에 TextBox 컨트롤을 사용합니다. 이 항목에서는 TextBox 클래스를 소개하고 XAML(Extensible Application Markup Language) 및 C#에서 사용하는 방법에 대한 예제를 제공합니다.

TextBox 또는 RichTextBox?

TextBoxRichTextBox를 사용하면 사용자가 텍스트를 입력할 수 있지만 두 컨트롤 모두 서로 다른 시나리오에 사용됩니다. TextBoxRichTextBox보다 적은 시스템 리소스를 필요로 하므로 일반 텍스트만 편집해야 하는 경우(예: 양식 사용) 이상적입니다. 사용자가 서식 있는 텍스트, 이미지, 테이블 또는 기타 지원되는 콘텐츠를 편집해야 할 경우 RichTextBox를 선택하는 것이 좋습니다. 예를 들어 서식 지정, 이미지 등이 필요한 문서, 기사 또는 블로그를 편집하는 경우 RichTextBox를 사용하는 것이 좋습니다. 아래 표에는 TextBoxRichTextBox의 기본 기능이 요약되어 있습니다.

제어 실시간 맞춤법 검사 상황에 맞는 메뉴 ToggleBold(Ctr+B)와 같은 서식 지정 명령 이미지, 문단, 테이블 등과 같은 FlowDocument 콘텐츠
TextBox 아니요.
RichTextBox 예(RichTextBox 개요 참조) 예(RichTextBox 개요 참조)

참고

TextBoxToggleBold(Ctr+B)와 같은 편집 명령과 관련된 서식 지정을 지원하지 않지만, 많은 기본 명령이 MoveToLineEnd와 같은 두 컨트롤에서 모두 지원됩니다. 자세한 내용은 EditingCommands 을 참조하세요.

TextBox에서 지원되는 기능은 아래 섹션에서 다룹니다. RichTextBox에 대한 자세한 내용은 RichTextBox 개요를 참조하세요.

실시간 맞춤법 검사

TextBox 또는 RichTextBox에서 실시간 철자 검사를 사용하도록 설정할 수 있습니다. 맞춤법 검사 기능이 켜져 있으면 맞춤법이 틀린 단어 밑에 빨간색 선이 나타납니다(아래 그림 참조).

맞춤법 검사 기능이 있는 Textbox

맞춤법 검사를 사용하도록 설정하는 방법에 대한 자세한 내용은 텍스트 편집 컨트롤에서 맞춤법 검사 사용을 참조하세요.

상황에 맞는 메뉴

기본적으로 TextBoxRichTextBox에는 사용자가 컨트롤 내에서 마우스 오른쪽 단추를 클릭하면 나타나는 바로 가기 메뉴가 있습니다. 상황에 맞는 메뉴를 통해 사용자는 항목을 잘라내거나, 복사하거나, 붙여넣을 수 있습니다(아래 그림 참조).

컨텍스트 메뉴가 있는 TextBox

자체적인 사용자 지정 상황에 맞는 메뉴를 만들어 기본 동작을 재정의할 수 있습니다. 자세한 내용은 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에서 텍스트가 변경되는 시점 감지를 참조하세요.

참고 항목