본문 바로가기

COM

[visual studio,.net,c#] 영어나 숫자 사이에 간격이 벌어져서 타이핑 될 때 해결법

 

종종 visual studio 뿐만 아니라 ms에서 제공되는 모든 프로그램들을 사용하다보면

아래 그림과 같이 영어 나 숫자 사이에 간격이 벌어지는 경우가 있다.

 

위 : 정상적으로 작성된 경우

아래 : 영어와 숫자 사이에 간격이 벌어진 경우


 

필자는 .net 프로그래밍으로 폼을 짜다가 이러한 오류가 발생해, 해결하기 위해서 2시간 동안 구글링하며 삽질을 했다.

 


 

 

 

구글링해본 결과,

 

위와 같은 문제는 visual studio 뿐만 아니라 ms에서 제공되는 모든 프로그램들에서 공통적으로 발견되는 문제로 전각 문자와 반각 문자 입력 등의 차이로 인해 생긴 에러로 보인다.

 


 

 

일단 엑셀이나, 워드와 같은 프로그램에서의 해결법은 무지 간단했다.

 

그저 [ ALT + '=' ] 키를 눌러주면 된다.......

 

정상으로 돌아온 그림

 

그래서 똑같이 visual studio에서도 내가 만든 폼에 포커스(그냥 폼 마우스 클릭했단 말)를 둔 뒤 [ alt + '=' ] 키를 눌러주니 글자가 원래대로 돌아왔다.

 

 

 


 

하.지.만.......................

폼을 다시 빌드해보니..

 

폼을 다시 빌드 해보니.. 처음처럼 영어 간격이 벌어지는 똑같은 결과가 나왔다. 제기랄!!!!!!!!!!!!!!!(이렇게 하면 된다며!!)

다시 전각문자로 입력이 되는 것이다.

 

알고보니, 엑셀이나 워드에서 먹히는 [ ALT + '=' ] 키는 이미 생성된 폼에서만 일시적으로 작동하고 폼이 리빌드 되면 다시 영어사이 간격이 벌어지는 전각문자로 돌아가는 것이었다.

 

어? 그러면 비주얼스튜디오 상에서 ALT + '=' 키를 눌러보면 되려나? 하고 실행해보니

똑같은 결과가 나왔다. 그대로 영어 간격이 지멋대로 벌어지는 전각문자가 입력되는 것이다.

 


 

이.렇.게... 삽질이 시작되었다. . . . . . . . . . .

 


 

.net 프로그래밍이나 visual studio에서의 해결법은 찾기 힘들었는데, 결국!!!!!!!!!!!!!!! 해결법을 찾았다. 

 

가히.. 개발은 삽질이랬거늘.. 정말 아무것도 아닌 것이 해결법이었다.

삽질 += 1

 


 

       해결방법       

 

 

해당 폼에 있는 모든 컨트롤(textbox와 같은 도구 상자에 들어있는 도구들을 말함) 중 어느 하나의 컨트롤의 속성 ImeMode가 NoControl 이 아닌 상태일 것이다.

 

속성 값이 'NoControl' 이 아닌 컨트롤을 찾아 'NoControl' 로 변경해준 뒤 다시 빌드해보면

 

짜잔! 영어간격이 정상적으로 돌아왔다.

 

- 끝 -

 


 

 

정확한 원인은 찾지 못하였고 땜빵만 하는 느낌으로 해결한 거 같아 찜찜하지만 당장 필요한 프로젝트는 해결할 수 있을 것이다. 정확한 원인과 해결법을 아시는 고수님들께서는 친히 댓글을 달아주시기를 기원합니다. A멘