在一个窗体上放一个dbgrid空件,在放一个可获得焦点的控件,
如edit,运行程序,先将输入法切换成任意一种中文输入法,然后
点击一下dbgrid空件,再点击edit控件,输入法就会自动切换成系统默认的方式。
不要小看这个问题,这个问题很严重,他让我的客户很恼火
如edit,运行程序,先将输入法切换成任意一种中文输入法,然后
点击一下dbgrid空件,再点击edit控件,输入法就会自动切换成系统默认的方式。
不要小看这个问题,这个问题很严重,他让我的客户很恼火
解决方案 »
- 咨询关于用DELPHI实现企业运营管理的源码和实现思路
- 我想写一个 Delphi 简单测试 执行速度 的程式
- delphi里如何得到一个变量的地址值
- 问一个简单的问题:
- 如何让checkbox不可改变check,但是不是灰色的?
- win98和winxp中编写程序要注意的事项?*****请大家参与*****
- 这样的行为是否越轨,是否和忠贞背道而驰?
- 获取进程句柄异常
- 请问哪里有软解压DVD的控件,小弟急用!(就这点分了,请不要嫌弃!)
- QRP文件如何转成TXT文件
- delphi7+ado+oracle好还是delphi7+dbexpress+oracle好
- 请教各位一个问题,关于delphi里用sql库内的数据!
Ctrl + Space.
实在不是什么大问题嘛
实在不行了,TNND,大不了自己向dbgrid发送虚拟按键.Ctrl + Space.
在edit1的onexit事件里先保存它的输入法,在onenter里再赋值。
比如TEdit就有一个ImeMode的属性
除非确实有必要。
procedure TCustomDBGrid.WMKillFocus(var Message: TMessage);
begin
if SysLocale.FarEast then inherited //if not SysLocale.FarEast then inherited
else
begin
ImeName := Screen.DefaultIme;
ImeMode := imDontCare;
inherited;
if not ((InplaceEditor <> nil) and
(HWND(Message.WParam) = InplaceEditor.Handle)) then
ActivateKeyboardLayout(Screen.DefaultKbLayout, KLF_ACTIVATE);
end;
end;
你的方法确实很高,可是那意味着我得重新注册一个新的dbgrid空件吗?
有没有更好的方法?