delphi中怎么用上下方向键选中TstringGrid的上一行下一行
TStringGrid没有获取焦点的情况下,比如在一个文本框中,按上下方向键,让TStringGrid选中上一行或下一行,怎么么能做的???...
TStringGrid没有获取焦点的情况下,比如在一个文本框中,按上下方向键,让TStringGrid选中上一行或下一行,怎么么能做的???
展开
1个回答
展开全部
将Form的KeyPreview设置为true,并添加以下代码:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_UP then
begin
if (StringGrid1.Row > 1) and (StringGrid1.Row < StringGrid1.RowCount) then
StringGrid1.Row := StringGrid1.Row -1 ;
end;
if Key = VK_DOWN then
begin
if (StringGrid1.Row >= 1) and (StringGrid1.Row < StringGrid1.RowCount -1) then
StringGrid1.Row := StringGrid1.Row + 1 ;
end;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_UP then
begin
if (StringGrid1.Row > 1) and (StringGrid1.Row < StringGrid1.RowCount) then
StringGrid1.Row := StringGrid1.Row -1 ;
end;
if Key = VK_DOWN then
begin
if (StringGrid1.Row >= 1) and (StringGrid1.Row < StringGrid1.RowCount -1) then
StringGrid1.Row := StringGrid1.Row + 1 ;
end;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询