제거 된 LostFocus 처리기.
키보드의 위치를 변경해야했습니다. 이것은 존재하지 않는 속성을 사용하는 유일한 방법입니다 : // .. 아마도 누군가에게 유용 할 것입니다.
[DllImport("coredll.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SipGetInfo(
ref SIPINFO sipInfo);
[DllImport("coredll.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SipSetInfo(
ref SIPINFO sipInfo);
[StructLayout(LayoutKind.Sequential)]
public struct SIPINFO
{
public uint cbSize;
public uint fdwFlags;
public RECT rcVisibleDesktop;
public RECT rcSipRect;
public uint dwImDataSize;
public IntPtr pvImData;
}
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
private void ShowInputPanel(Control control)
{
InputPanel.SIPINFO sipInfo;
var x = 100;
var y = control.PointToScreen(new Point(110, 150)).Y; //control.Height
this.inputPanel1.Enabled = true;
sipInfo = new InputPanel.SIPINFO();
sipInfo.cbSize = (uint)Marshal.SizeOf(sipInfo);
if (InputPanel.SipGetInfo(ref sipInfo))
{
sipInfo.rcSipRect.left = x;
sipInfo.rcSipRect.top = y;
InputPanel.SipSetInfo(ref sipInfo);
}
}
private void textBox1_GotFocus(object sender, EventArgs e)
{
this.ShowInputPanel(this.textBox1);
}
'사용'은 컨트롤이 이벤트에 응답하는 경우에만 토글합니다. 어쩌면 당신은'Visible' 속성을 원할까요? – jnovacho
실제 이벤트 처리기가 이벤트에 첨부되어 있습니까? 아니면 [코드 붙여 넣기]입니까? (http://msdn.microsoft.com/en-us/library/microsoft.windowsce.forms.inputpanel.aspx)? – GSerg
나는 단지 코드를 붙이지 만, 이제 이벤트에 첨부했다. 그러나 1 초 동안 만 보여주고 닫기보다 – franzp