这个问题怎么解决?(100分)

  • 主题发起人 LitterTiger
  • 开始时间
L

LitterTiger

Unregistered / Unconfirmed
GUEST, unregistred user!
一各窗体上有几个编辑框和几个按钮
我想通过按四各方向键来控制两个编辑框里面的数字大小,
但是方向键是控制focus的,一按如果是按钮焦点会转移,如果是edit,光标左右乱动
有没有一个好的解决方法呢
 
把问题说明白了。
 
那你就在不需要控制的控件KeyDown事件里写
case key of
VK_Left :按下方向键要控制的控件要干的事
Key:=0;

VK_Right :同上
VK_Up :同上
VK_Down :同上
end;

 
我的问题简单点说
就是什么控件或怎么样才能使方向键按下时某控件的焦点不会转移到别的控件上。
 
将Form的KeyPreview的属性设置成“true”
在Form中的Keypress事件中写如下代码:
case key of
VK_Left :按下方向键要控制的控件要干的事
Key:=#0;

VK_Right :同上
VK_Up :同上
VK_Down :同上
end;
也可以写入你想要的代码。
 
很简单啊,只要setfocus一下不就行了?
procedure TForm1.Edit1KeyDown(......);
begin
if key in [vk_up,vk_down,vk_left,vk_right] then

begin
if key=vk_up then
edit1.text:=inttostr(strtoint(edit1.text)+1);
if key=vk_down then
edit1.text:=inttostr(strtoint(edit1.text)-1);
edit1.setfocus;
//key:=0;
//这一句也可以
end;
end;
 
顶部