TextBox 개요

업데이트: 2007년 11월

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

이 항목에는 다음 단원이 포함되어 있습니다.

  • TextBox 또는 RichTextBox란?
  • TextBox 만들기
  • 콘텐츠가 변경되는 시점 감지
  • 관련 항목

TextBox 또는 RichTextBox란?

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

컨트롤

실시간 맞춤법 검사

상황에 맞는 메뉴

ToggleBold(Ctr+B)와 같은 서식 명령

이미지, 단락, 테이블 등과 같은 FlowDocument 콘텐츠

TextBox

아니요

아니요

RichTextBox

예(RichTextBox 개요 참조)

예(RichTextBox 개요 참조)

참고

TextBox에서는 ToggleBold(Ctr+B)와 같은 서식 관련 편집 명령이 지원되지 않지만 MoveToLineEnd와 같은 대부분의 기본 명령은 두 컨트롤 모두에서 지원됩니다. 자세한 내용은 EditingCommands를 참조하십시오. 또한 TextBox와 함께 사용되는 편집 명령에 대한 설명은 EditingCommands 샘플을 참조하십시오.

TextBox에서 지원되는 기능은 아래 단원에 설명되어 있습니다. RichTextBox에 대한 자세한 내용은 RichTextBox 개요를 참조하십시오.

실시간 맞춤법 검사

TextBox 또는 RichTextBox에서 실시간 맞춤법 검사를 사용하도록 설정할 수 있습니다. 맞춤법 검사가 설정된 경우 맞춤법이 틀린 모든 단어 아래에 빨간색 줄이 나타납니다(아래 그림 참조).

맞춤법 검사 기능이 있는 Textbox

맞춤법 검사를 사용하도록 설정하는 방법은 방법: 텍스트 편집 컨트롤에서 맞춤법 검사 사용을 참조하십시오.

상황에 맞는 메뉴

기본적으로 TextBoxRichTextBox 모두에는 사용자가 컨트롤 안에서 마우스 오른쪽 단추를 클릭했을 때 표시되는 상황에 맞는 메뉴가 있습니다. 상황에 맞는 메뉴를 사용하여 잘라내기, 복사 또는 붙여넣기를 수행할 수 있습니다(아래 그림 참조).

상황에 맞는 메뉴가 있는 TextBox

사용자 지정된 고유한 상황에 맞는 메뉴를 만들어 기본 동작을 재정의할 수 있습니다. 자세한 내용은 방법: TextBox에 사용자 지정 컨텍스트 메뉴 사용을 참조하십시오.

TextBox 만들기

TextBox는 한 줄 높이가 되거나 여러 줄로 구성될 수 있습니다. 한 줄의 TextBox는 작은 양의 일반 텍스트(예: 폼에 있는 "이름", "전호 번호" 등)를 입력하는 데 적합합니다. 다음 예제에서는 한 줄의 TextBox를 만드는 방법을 보여 줍니다.

<Page  xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="https://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 사용과 연관된 다른 작업에 대한 자세한 내용은 TextBox 방법 항목을 참조하십시오.

콘텐츠가 변경되는 시점 감지

일반적으로 TextBox 또는 RichTextBox의 텍스트가 변경되는 시점을 감지하려면 예상과 달리 KeyDown이 아닌 TextChanged 이벤트를 사용해야 합니다. 예제는 방법: TextBox에서 텍스트가 변경되는 시점 감지를 참조하십시오.

참고 항목

작업

EditingCommands 샘플

편집 검사기 데모

메모장 데모

개념

RichTextBox 개요

기타 리소스

TextBox 방법 항목