본문 바로가기
개발 이야기/C# 이야기

C# .Net WPF Textbox Enter키 입력 및 자동 줄바꿈

by 런던살자 2020. 3. 28.

안녕하세요 마블랑입니다.

 

C# WPF 에서 사용자의 텍스트를 입력받을수 있는 Textbox(텍스트박스) 컨트롤

 

기본적인 기능이야 .Net에서 잘 구현되어 있지만 가끔 특수한 기능을 구현해서 사용해야 될때가 있는데요

 

그 Textbox(텍스트박스) 관련해서 기본 컨트롤에 몇가지 특수한 기능을 추가해보려고 합니다.

 

바로 엔터키를 입력해서 여러줄을 입력 받을수 있게 하는 기능과 한 라인의 글자수를 제한해서 자동으로 다음 줄에 텍스트가 써지게 하는 기능입니다~

 

아래화면처럼 최대길이 10자리를 넘어가면 자동으로 아래줄에 쓰여집니다.

 

그리고 Enter(엔터)키를 사용해서 최대 길이가 넘지 않아도 아래 줄로 내려갈수 있도록 기능을 추가해두었습니다~

1. 자동줄바꿈

 

자동 줄바꿈 기능은 .Net(닷넷)에서 따로 제공하는것이 없는듯하여 직접 구현했습니다~

 

Textbox(텍스트박스)의 이벤트에서 TextChanged 이벤트에 추가해주세요~

 

        private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            string strTemp = tb_lineChange.Text;  

            string[] arrTemp = strTemp.Split('\n');

            if (arrTemp[arrTemp.Length - 1].Length >= LineLimitSize) //전역변수 : 10 , 최대길이 10
            {
                strTemp += Environment.NewLine;
            }

            tb_lineChange.Text = strTemp;
            tb_lineChange.Select(tb_lineChange.Text.Length, 0); //offset 이동
            tb_lineChange.Focus();
        }

바로 테스트를 해보면 자동으로 줄이 내려가는것을 확인할수 있습니다.

 

 

2. Enter(엔터) 키 입력

 

Enter(엔터) 키 입력기능은 .xmal 화면에서 추가할수 있습니다.

 

Textbox(텍스트박스) 에 아래 속성들을 추가해주세요~

AcceptsReturn="True" AcceptsTab="True" TextWrapping="WrapWithOverflow"

TextWrapping 속성은 기존에 있으니 수정해서 사용하길 바랍니다~

 

 

이렇게 C# .Net의 Textbox(텍스트박스) 컨트롤에 몇가지 기능을 추가해보았는데요

 

경우에 따라 잘 활용하길 바랍니다~

 

 

 

이상 마블랑이었습니다.

 

읽어주어서 고맙습니다.

댓글