是否有一种方法来捕获标题的名称鼠标移动到Dbgrids标题?
的想法是使标题名称可见,只有当光标移动到标题的字段。
下面的代码显示了如何获取鼠标指针所在的网格列的"title"
实际上,在TDBGrid列的列头中显示的是该列的Title
对象的Caption
属性,该对象还具有其他属性。下面的代码读取并显示Title
的Caption
属性。
从联机帮助中可以看到,作为网格列的TColumn对象也具有Field
和FieldName
属性,如果需要,您可以读取这些属性。
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y:
Integer);
var
Col,
Row : Integer;
begin
Col := DBGrid1.MouseCoord(X, Y).X;
Row := DBGrid1.MouseCoord(X, Y).Y;
Caption := Format('Col: %d, Row:%d', [Col, Row]);
if (Col > 0) and (Col <= DBGrid1.Columns.Count) then
Caption := Caption + DBGrid1.Columns[Col - 1].Title.Caption;
end;
要回答这个问题,您需要知道的是
1:鼠标位于哪个单元格上(因此它是否位于标题单元格上)
和
2:字段名(title)。
这两种都是可能的,但不确定如何使用这些信息来使标题名称可见。
1:用于捕获OnMouseMove事件并使用mousecord属性。
2:使用结果列值(如果Row值为0)和Fields[ACol]。字段名财产。
但是也许实现你想要的更直接的方法是在选项中设置dgTitleHotTrack并设置一个hottrack样式(可能必须是自定义的)