on StringGrid1.OnKeyPress begin if (Key = #13) and (StringGrid1.Col = 7) then begin if StringGrid1.Row <> StringGrid1.RowCount then //如果是最后一行,则不换行 begin StringGrid1.Row := StringGrid.Row + 1; StringGrid1.Col := 7 end; end; end
楼上的基本正确,借他的代码改改 on StringGrid1.OnKeyDown begin if Key = VK_RETURN then begin if StringGrid1.Row <> StringGrid1.RowCount-1 then //如果是最后一行,则不换行(如果你有标题行就减) StringGrid1.Row := StringGrid1.Row + 1; //不是最后一行就加,反则不动作 Key := Ord(0); //千万记住要吃掉回车 end; end
if key = 13 then
stringgrid1.cells[7,0].setfocus;
你说如果是下一行的话那把行号+1就可以了,不具体写了
而且你说的这个stringgrid1.cells[7,0].setfocus;根本编译不通过
begin
if (Key = #13) and (StringGrid1.Col = 7) then
begin
if StringGrid1.Row <> StringGrid1.RowCount then //如果是最后一行,则不换行
begin
StringGrid1.Row := StringGrid.Row + 1;
StringGrid1.Col := 7
end;
end;
end
on StringGrid1.OnKeyDown
begin
if Key = VK_RETURN then
begin
if StringGrid1.Row <> StringGrid1.RowCount-1 then //如果是最后一行,则不换行(如果你有标题行就减)
StringGrid1.Row := StringGrid1.Row + 1; //不是最后一行就加,反则不动作
Key := Ord(0); //千万记住要吃掉回车
end;
end