急!DBGRID问题!
请问:(1)如何在DBGRID中敲回车实现TAB的功能,即从第一排的第一个字段,跳到第二个字段,再跳到第三个字段,跳到最后一个字段的时候,就跳到下一条记录,以此类推。(2)当从一个字段格跳到下个字段格中的时候,下个字段中的字段内容变为兰色,也就是全部选种的颜色,以此类推
如何实现,很急,答对立即给分!!!
问题点数:20、回复次数:7Top
1 楼Cipherliu(孤鹰)回复于 2002-03-27 16:07:03 得分 2
处理KeyDown消息试试看。Top
2 楼tangqin(吞云)回复于 2002-03-27 16:13:30 得分 1
1) 键盘事件。
2)DBGRID 行记录颜色控制。
太多的资料介绍这些。——查书!Top
3 楼CeleronII(抽烟的鱼)回复于 2002-03-27 16:18:01 得分 0
我这里没有书,我也知道这样做,具体点说啊Top
4 楼outer2000(天外流星)回复于 2002-03-27 16:32:34 得分 8
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then
//showmessage(inttostr(DBGrid1.Columns.Count ));
if dbgrid1.SelectedIndex <dbgrid1.Columns.Count-1 then
begin
dbgrid1.SelectedIndex := dbgrid1.SelectedIndex+1;
showmessage(inttostr(dbgrid1.SelectedIndex));
end
else if dbgrid1.SelectedIndex=dbgrid1.Columns.Count-1 then
begin
dbgrid1.SelectedIndex := 0;
end;
// showmessage('asdf');
end;
Top
5 楼zsz0401()回复于 2002-03-27 16:34:18 得分 5
用方向键可实现你想要的功能
亦可转化
用KeyDown事件
如:
if Key=Vk_Return then
Key:=Vk_Down;Top
6 楼thinkcat(思想猫)回复于 2002-03-27 16:39:35 得分 4
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var cur:integer;
begin
if key=VK_RETURN then begin
cur:=dbgrid1.SelectedIndex;
if cur<>dbgrid1.FieldCount-1 then
dbgrid1.SelectedIndex:=cur+1
else begin
datasource1.DataSet.Next;
dbgrid1.SelectedIndex:=0;
end;
end;
end;
Top
7 楼lincor()回复于 2002-03-27 17:11:42 得分 0
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key = #13) then
SendMessage(DBGrid1.Handle,WM_KEYDOWN,VK_TAB,0);
end;
Top




