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();
	}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值