一般用得到

ACol, ARow: Integer;
MousePos: TPoint;

MousePos := ScreenToClient(Mouse.CursorPos);
// 将鼠标位置转换为单元格的行列索引
StringGrid1.MouseToCell(MousePos.X, MousePos.Y, ACol, ARow);

但当StringGrid不在窗口的左上角时,得到的行列就不对,用下面的代码可以

// 获取当前鼠标位置
MousePos := Mouse.CursorPos;
// 将全局坐标转换为 StringGrid 的局部坐标
MousePos := StringGrid1.ScreenToClient(MousePos);
// 将鼠标位置转换为单元格的行列索引
StringGrid1.MouseToCell(MousePos.X, MousePos.Y, ACol, ARow);

 

posted on 2025-04-03 11:25  禁卫军  阅读(25)  评论(0)    收藏  举报