[제품종류] IEC667
[개발환경] Visual Studio 2008 C#
=============== 질 문 ===============1. 대화창을 모달리스로 열고 SmartKeyboard를 생성자에서 받아 대화창 외부에 띄우고 한글을 입력하면
글씨의 자음과 모음이 분리 되어 표시 됩니다. (그림참조)
해결 방법이 있을까요?
--------------------------------------------------------------
메인창에서 대화창 띄우는 부분 소스 코드
--------------------------------------------------------------
chUser = new UserForm(smartKeyboard1);
chUser.Location = new Point(30, 30);
chUser.Apply += new EventHandler(OnApply_User);
chUser.Show();
--------------------------------------------------------------
대화창에서 키보드 입력 받는 부분
--------------------------------------------------------------
SmartX.SmartKeyboard sKey;
public UserForm(SmartX.SmartKeyboard sKey)
{
this.sKey = sKey;
InitializeComponent();
}
private void textBox_GotFocus(object sender, EventArgs e)
{
if (((TextBox)sender).Name == textBox2.Name)
{
sKey.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NUMERICAL;
sKey.SizeRunTime = new Size(248, 248);
}
else
{
sKey.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL;
sKey.SizeRunTime = new Size(494, 197);
}
sKey.TargetInputObject = (TextBox)sender;
}
이상입니다.
=============== 답 변 ===============
안녕하세요.
지금 올려주신 내용을 확인해보니 SmartKeyboard가 TextBox의 Focus를 잃으면서 발생하게 되는 문제로 확인됩니다.
한글의 경우 자음+모음의 조합으로 문자가 완성되기 위해 IME에서 문자 입력 조합을 처리하고 있습니다.
다만 SmartKeyboard가 Focus를 잃을 때 문자가 완성되는 것으로 판단하여 자음과 모음을 조합하지 않고
처리하기 때문에 말씀하신 것과 같은 문제가 발생하게 되는 것으로 확인되었습니다.
실제 PC에서도 메모장과 계산기를 같이 열어두고 메모장에 “안녕하세요”를 작성할 때 메모장과 계산기를 번갈아가며 입력하면
동일한 문제가 발생하시는 것을 확인하실 수 있습니다. 문의주신 내용은 이와 동일한 문제입니다.
당장의 해결 방법으로는 두가지 방법이 있습니다.
1. TextBox를 Label로 변경하여 문자를 입력처리 하시는 방법
2. 문자가 입력될 각 Form 마다SmartKeyboard를 개별로 추가하여 사용하시는 방법
문의주신 문제에 대해서는 다음 업데이트 때 개선하여 릴리즈할 수 있도록 하겠습니다.
감사합니다.