本文主要是介绍cxgrid设置导航条,重写事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.显示cxgrid的导航条:
注意导航条中一共有16个操作键,如下图:
这16个操作间对应着:
需要注意的是,点击导航条中的按钮发生的事件为:
void __fastcall TFormSysConfig::cxGrid1DBTableView1NavigatorButtonsButtonClick(TObject *Sender,
int AButtonIndex, bool &ADone)
其中这16个操作键对应的AButtonIndex的为一下16个,当然为了方便使用,最好定义成宏定义或者枚举类型:
EM_First = 0, //第一行
EM_PriorPage = 1, //前一页
EM_Prior = 2, //前一行
EM_Next = 3, //后一行
EM_MextPage = 4, //后一页
EM_Last = 5, //最后一行
EM_Insert = 6, //插入一行
EM_Append = 7, //追加一行
EM_Delete = 8, //删除一行
EM_Edit = 9, //编辑一行
EM_Post = 10, //提交修改
EM_Cancel = 11, //取消修改
EM_Refresh = 12, //刷新
EM_SaveBookmark = 13, //保存标签
EM_GotoBookmark = 14, //前往指定行
EM_Filter = 15, //筛选
可以根据 AButtonIndex的值来处理自己编写响应的事件。
例如:
void __fastcall TFormSysConfig::cxGrid1DBTableView1NavigatorButtonsButtonClick(TObject *Sender,int AButtonIndex, bool &ADone)
{int nButtonIndex = AButtonIndex;ShowMessage("Index:" + String(nButtonIndex));if(AButtonIndex == 7)//添加一行{dxMemDataMeterPosInfo->Last();//先定位到最后一行ADone = true;dxMemDataMeterPosInfo->DisableControls();int nXH = dxMemDataMeterPosInfo->FieldByName("METERPOS")->AsString.ToInt();dxMemDataMeterPosInfo->Append();dxMemDataMeterPosInfo->FieldByName("METERPOS")->AsString = AnsiString(++nXH);dxMemDataMeterPosInfo->Post();dxMemDataMeterPosInfo->EnableControls();}else if(AButtonIndex == 8) //删除一行{int nXH = 1;dxMemDataMeterPosInfo->DisableControls();for(dxMemDataMeterPosInfo->First(); !dxMemDataMeterPosInfo->Eof; dxMemDataMeterPosInfo->Next()){dxMemDataMeterPosInfo->Edit();dxMemDataMeterPosInfo->FieldByName("METERPOS")->AsString = AnsiString(nXH++);dxMemDataMeterPosInfo->Post();}dxMemDataMeterPosInfo->EnableControls();}}
这篇关于cxgrid设置导航条,重写事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!