你有没有觉得这个控件在输入日期时不太方便? 输完年后还要按一下右键头才能定位到月,然后再按一下右键头定位到日,输完按回车或者TAB还不能转到下一输入控件,今天我就来解决这个问题:输入时让光标自动移动,比如四位年份输完了光标立即跳到MM上;输完按回车直接去到下一控件;如果是从另一个控件转入此控件,直接定位到月进行输入,因为通常年都不需要修改。以下是实现代码:
procedure TFrm_AjJg_Input.DateTimePicker_CHECKDATEChange(Sender: TObject);
begin
keybd_event(vk_right,0, KEYEVENTF_EXTENDEDKEY, 0); //值改变时模拟一次右键头实现日期连续输入
end;
procedure TFrm_AjJg_Input.DateTimePicker_CHECKDATEKeyPress(Sender: TObject;
var Key: Char);
begin
if (key = #13) then
begin
Key := #0;
Edit_LIUTOU_TOTAL.SetFocus();
//Keybd_Event(VK_TAB, MapvirtualKey(VK_TAB, 0), 0, 0);
end;
end;
procedure TFrm_AjJg_Input.ComboBox_SJCHECKUSERKeyPress(Sender: TObject;
var Key: Char);
begin
if (key = #13) then
begin
Key := #0;
Keybd_Event(VK_TAB, MapvirtualKey(VK_TAB, 0), 0, 0);
keybd_event(vk_right,0, KEYEVENTF_EXTENDEDKEY, 0); //直接将日期输入定位到月
end;
end;