DBGrid中单元格事件
怎样为dbgrid中的每个单元格定义一个onmouseover事件啊?或是类似的,就是当鼠标进入cell时会触发的那个事件啊?望大侠指教啊!
[解决办法]
在Grid的MouseMove事件中判断一下鼠标所在的单元格,然后再进行相应的处理
[解决办法]
以前做过在DBGrid上弄个CheckBox,是从某个资料上获得的,看能不能给你启发。
先选择或动态创建一个CheckBox控件,如果选择动态创建,可以使用以下代码:
TCheckBox *CheckBox = new TCheckBox(this);
CheckBox->Parent = DBGrid1;
CheckBox->Visible = false;//默认选择不可见
在DBGrid的DrawColumnCell()事件中:
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if ( DBGrid1->SelectedIndex == 0 )//选中DBGrid中行的第一个域
{
if ( State.Contains(gdFocused))
{
//以下代码确定CheckBox的显示位置,可自己调整
CheckBox->Left = DBGrid1->Left + Rect.Right - 30;
CheckBox->Top = Rect.Top + DBGrid1->Top + 2;
CheckBox->Width = 30;
CheckBox->Height = Rect.Bottom - Rect.Top;
CheckBox->Visible = true;
}
}
}