인프런 커뮤니티 질문&답변

slam_poet님의 프로필 이미지

작성한 질문수

아무것도 모르고 시작하는 C#

문자를 마음대로 자를 수 있어요. “문자가위”만들기

텍스트박스에 한계값을 주는법

21.02.22 17:36 작성

·

923

0

앞자리 뒷자리 자르는 숫자 한계값을

텍스트박스에 줄려고 

리브 이벤트를 사용해 보았습니다

근데 아무것도 안적고 그냥 다른칸으로 이동하니

에러가 나더군요 그래서 트라이 캐치문을 쓰니 되긴한데

다른방법이 또 있을까요 정석이라고 할만한?

        private void textBox2_Leave(object sender, EventArgs e)

        {

            try

            {

                if (Convert.ToInt32(textBox2.Text) > 2)

                {

                    textBox2.Text = "2";

                }

            }

            catch

            {

            }

        }

답변 1

0

박병욱님의 프로필 이미지
박병욱
지식공유자

2021. 02. 23. 13:40

안녕하세요

질문자님, 열심히 하는 모습이 보기 좋습니다.

먼저, 질문주신 부분에 대한 여러 방법 중 아래의 방법을 알려드리고자 합니다.

먼저 작업을 하고자 하는 TextBox를 선택 후 TextChanged라는 부분을 더블 클릭하여 TextChanged를 오버라이드 합니다.

TextChanged는 입력한 값 또는 변경하는 값이 완료되었을 때 작동하는 역할을 합니다.

다음과 같이 코딩을 할 수 있을 것 같습니다.

Convert.ToInt32를 통해 textBox_Front에 입력된 문자로 된 숫자 값을 Int32 형태의 정수 값으로 변경합니다.

if문을 사용해 이 값이 2보다 클 경우 textBox_Front에 0을 다시 입력하고 메시지로 "2보다 큰 숫자는 입력할 수 없습니다."라고 표시합니다.

만약 2보다 작을 경우에는 if문에 걸리지 않고 통과하여 입력을 할 수 있습니다.

위의 작업을 통해 0부터 2까지만 입력할 수 있는 기능을 구현하였습니다.

개발에는 다양한 접근 방법이 있기 때문에 무엇이 정답이다라고 할 수는 없지만,

시스템에 오류가 안나고 구조적인 문제를 일으키지 않는 방식이라면 다 정답이라고 할 수 있습니다.

숙련도에 따라 코드가 고급스러워 지거나, 보다 섬세한 구성과 기능 구현을 할 수 있는 차이가 있는대요

예를 들면, 위의 예제에서 처럼 0으로 변환해주는 것이 아닌, 이전 값을 기억하여 if문에 걸렸을 경우 이전값으로 변환을 해주는 등의 작업을 추가로 할 수 있을 것 같습니다.

그리고 윈도우 폼을 사용하여 강의를 한 것은 UI가 직관적이고 쉽게 보면서 이해를 할 수 있기 때문이며, 윈도우 폼은 C#을 연습하는 정도로 사용하는 것을 추천 드립니다. 최근 개발 프로젝트 들은 윈도우 폼으로 진행하는 것이 거의 없기 때문입니다.

도움이 되셨으면 좋겠습니다.

응원합니다.

고맙습니다.

박병욱 드림

slam_poet님의 프로필 이미지
slam_poet
질문자

2021. 02. 26. 23:38

감사합니다 wpf를 쓰나보네요 요즘은 하... ㅠㅠ 

박병욱님의 프로필 이미지
박병욱
지식공유자

2021. 02. 27. 20:44

desktop app의 경우 아직 wpf로 개발하긴 합니다. 만약 c#학습에 관심이 있다면 asp.net core을 한번 공부해보시면 도움이 될 것 같습니다. 우리나라의 경우 .net계열보다는 아직까진 다른 언어들이 더 다양한 일들이 많습니다. 어떤 분야를 직업 또는 어떤 관점으로 관심있어 하는지 알려주시면 좀 더 도움이 될만한 내용을 알려드릴 수 있을 것 같습니다. :)