windows 2003 server + delphi 7 + MSSQL2005我的 DBGridEh1 所有Events都清除了,但是(datasource)和(Popupmenu)除外。设置 DBGridEh1 属性
dgTabs True // 已试过 dgTabs False 同样故障dghEnterAsTab True
可是在 DBGridEh1 数据录入的时候,回车或者TAB ,// 或者是上下键箭头移动都是同样故障
第一行,行末,可以跳到第二行,
第二行,行末,又是跳回到第二行第一列,那么继续回车或者TAB到行末,这下可以跳到第三行,
第三行,行末,又是跳回到第二行第一列,继续,回车或者TAB,一直到第三行行末,可以跳到第四行,
第四行,行末,还是跳回到第二行第一列,……如此循环
怎么可以这样呢?搜索了很多地方,找不到答案。。恳求帮忙了。
dgTabs True // 已试过 dgTabs False 同样故障dghEnterAsTab True
可是在 DBGridEh1 数据录入的时候,回车或者TAB ,// 或者是上下键箭头移动都是同样故障
第一行,行末,可以跳到第二行,
第二行,行末,又是跳回到第二行第一列,那么继续回车或者TAB到行末,这下可以跳到第三行,
第三行,行末,又是跳回到第二行第一列,继续,回车或者TAB,一直到第三行行末,可以跳到第四行,
第四行,行末,还是跳回到第二行第一列,……如此循环
怎么可以这样呢?搜索了很多地方,找不到答案。。恳求帮忙了。
procedure Tfrm_KdEdit.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin case Key of
VK_ESCAPE: Close;
VK_RETURN:
if not (ActiveControl is TDBGridEh) then
begin
if Shift = [ssShift] then
Perform(WM_NEXTDLGCTL, 1, 0)
else
Perform(WM_NEXTDLGCTL, 0, 0);
end
else
begin
if (key=13) and not (DBGridEh1.DataSource.DataSet.Eof) then
DBGridEh1.DataSource.DataSet.Next
else
if key=13 then key:=9;
end; end;end;
你是希望这个属性是false还是true呢?
var DataChange: TDataChangeEvent;
begin
if Key = #13 then
begin
with TDBGridEh(Sender) do
begin
try
DataChange := DataSource.OnDataChange;
DataSource.OnDataChange := nil;
if SelectedIndex = Columns.Count - 1 then
begin
if Not DataSource.DataSet.Eof then
begin
DataSource.DataSet.Next;
SelectedIndex := 0;
end;
end
else
SelectedIndex := SelectedIndex+1;
finally
DataSource.OnDataChange := DataChange;
end;
end;
end;
end;