我有一个自定义控件TGrid
,我正在尝试制作它,因此当鼠标悬停在一行上时,该行会突出显示。如果我使用箭头键导航网格,行会自动突出显示。但是,我不确定如何复制此效果以使用鼠标进行导航。
目前,我有一个 MouseMove 函数,它可以检测鼠标悬停在网格的哪一行。
void __fastcall TFmSearchBar::GridMouseMove(TObject *Sender, TShiftState Shift, float X, float Y)
{
int rowSelected = FGrid->RowByPoint(X, Y);
if(rowSelected >= FGrid->RowCount)
rowSelected = FGrid->RowCount - 1;
if(rowSelected != -1)
{
FGrid->SelectRow(rowSelected);
}
}
我最初认为使用该SelectRow
功能会达到预期的效果,但是使用该方法时没有任何反应。另外我尝试过使用
FGrid->SelectCell(0, rowSelected);
这也不起作用。
我已经验证我从函数中获得了正确的行,当鼠标悬停在它上面时,将一行的文本设置为粗体
FGrid->RowObjects[rowSelected]->SetBold();