반응형
#region ImportDLL
[DllImport("Imm32.dll", SetLastError = true)]
public static extern IntPtr ImmGetContext(IntPtr hWnd);
[DllImport("imm32.dll")]
public static extern bool ImmGetConversionStatus(IntPtr himc, ref int lpdw, ref int lpdw2);
[DllImport("imm32.dll")]
public static extern bool ImmGetOpenStatus(IntPtr himc);
private Byte IME_CMODE_HANGEUL = 0x0001;
#endregion
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
//ime가 한글일경우 바로 editMode로 들어가도록 한다. textbox입력 모드로 하기위해서
int iMode = 0;
int iSentence = 0;
IntPtr HIme = ImmGetContext(this.dataGridViewUpload.Handle);
bool bSuccess = ImmGetConversionStatus(HIme, ref iMode, ref iSentence);
if (ImmGetOpenStatus(HIme))
{
if ((iMode & IME_CMODE_HANGEUL) > 0)
{
if (!((keyData & Keys.Control) == Keys.Control))
{
switch (keyData)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
break;
default:
dataGridViewUpload.BeginEdit(true);
break;
}
}
}
}
if (keyData == Keys.Enter)
{
if (this.dataGridViewUpload.CurrentCell != null
&& this.dataGridViewUpload.CurrentCell.IsInEditMode
&& !(this.dataGridViewUpload.CurrentCell is DataGridViewCheckBoxCell))
{
MoveNextCell();
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
'Programing > C# ' 카테고리의 다른 글
Custom Button for Image (0) | 2014.04.03 |
---|---|
런타임시에 PropertyGrid 속성 감추기, 보여주기 (0) | 2014.04.03 |
Graphics Text Rotate 글자 회전 (0) | 2013.12.18 |
point , inch, pixel ,mm 단위 관계 (0) | 2013.12.11 |
Make Short Path(긴 파일명 짧게 줄이는 방법), 파일이름 길이 줄이기 (0) | 2012.12.18 |