如何在DBGrid实现用回车键就移到下一格,同行完结时,移到下一行?
如何在DBGrid实现用回车键就移到下一格,同行完结时,移到下一行? 问题点数:0、回复次数:9Top
1 楼wzghh(随风幻想)回复于 2003-08-01 02:27:31 得分 0
在DBGrid的OnKeyPress的事件里写入代码:
例子如下:
procedure TForm.DBGridKeyPress(Sender: TObject; var Key: Char);
var
n:Integer;
begin
if Key=#13 then
begin
Key:=#0;
if DBGrid1.SelectedIndex<(DBGrid1.Columns.Count-1) then
DBGrid1.SelectedIndex:=n+1
else
begin
Table1{连接到DBGrid1的数据表}.Append;
DBGrideh1.SelectedIndex:=0;
end;
end;
end;Top
2 楼ljmanage(过客)回复于 2003-08-01 07:17:45 得分 0
procedure TForm.DBGridKeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 then
begin
Key:=#0;
if DBGrid1.SelectedIndex<(DBGrid1.Columns.Count-1) then
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1
else
begin
DBGrid1.DataSet.next; //
DBGrid1.SelectedIndex:=0;
end;
end;
end;
Top
3 楼songandlan(小松一夜听春雨)回复于 2003-08-01 10:29:18 得分 0
我有一個最好的方法(自認為)
先將窗體的KEYPREVIEW屬性設為TRUE
然后在窗本的KEYDOWN事件里面寫上
if self.ActiveControl = self.DBGrid2 then
begin
if key=13 then
begin
key:=9;
end
endTop
4 楼dickeybird888(小鸟)回复于 2003-08-01 10:56:45 得分 0
procedure TForm.DBGridKeyPress(Sender: TObject; var Key: Char);
begin
if Key=13 then
Key:=9;
end;
设置options中的dgTabs为TrueTop
5 楼snoopyqm()回复于 2003-08-01 11:19:33 得分 0
在DBGrid(假设名为DBGrid1)的OnKeyPress事件中加入下面的代码
if Key=#13 then
begin
Key:=#0;
if DBGrid1.SelectedIndex<(DBGrid1.Columns.Count-1) then
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1
else
begin
DBGrid1.DataSource.DataSet.next;
DBGrid1.SelectedIndex:=0;
end;
end;Top
6 楼stbrine(brine)回复于 2003-08-16 17:01:07 得分 0
if self.ActiveControl = self.DBGrid2 then
begin
if key=13 then
begin
key:=9;
if DBGrid2.SelectedIndex<(DBGrid2.Columns.Count-1) then
DBGrid2.SelectedIndex:=DBGrid2.SelectedIndex+1
else
begin
DBGrid2.DataSource.DataSet.next;
if DBGrid2.DataSource.DataSet.eof then
DBGrid2.DataSource.DataSet.Append;
DBGrid2.SelectedIndex:=0;
end;
end
end
Top
7 楼stbrine(brine)回复于 2003-08-16 17:02:21 得分 0
补充上行
在DBGrid2的KEYDOWN事件里Top
8 楼zhusongdong(大漠孤烟)回复于 2003-08-16 19:55:41 得分 0
我的方法是将窗体的KEYPREVIEW属性设为真
在DBgrid的KeyDown事件中输入代码:
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key= 13 then
keybd_event(vk_tab,0,0,0);
end;Top
9 楼zousoft(菜菜鸟的战斗诗歌)回复于 2003-08-16 21:31:26 得分 0
真么多方法都挺好的, 楼主结贴吧.Top



