【发布时间】:2015-06-08 13:53:32
【问题描述】:
我有一个自定义的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();
【问题讨论】:
标签: c++ c++builder firemonkey c++builder-xe7 tgrid