在dbgrid中如何控制当前行?

ntcxh 2005-09-19 04:29:00
在dbgrid中操作时,如何对当前选中的行处于可编辑状态,而其它的行不可点击。
如:在dbgrid中有多行信息,本人选择第二行,并点击后选择编辑功能.
要求:此时只能对此行进行操作,而点击其它行无效。
...全文
115 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengyinhe 2005-09-24
  • 打赏
  • 举报
回复
我是用BDE,无法访问RECNO,一访问,就出现下面的错误:
Table does no support this operation because it is not uniquely indexed
我的DATASET是一个SQL语句的返回结果集,无法制定Index
我也想自己写代码实现SHIFT复选多行,只是无法定位开始和结束的纪录位置

真如实观 2005-09-24
  • 打赏
  • 举报
回复
第一个问题:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
nKey=0;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Table1BeforeScroll(TDataSet *DataSet)
{
if(nKey>0)
Abort();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Table1BeforeEdit(TDataSet *DataSet)
{
nKey++;
}
第二个问题:
用BookMark
7rainbow 2005-09-23
  • 打赏
  • 举报
回复
你可以间接的这样做,
在你的编辑按钮事件中,记录下记录的记录号
int t = 1;//定义成全局的
t = DBGrid1->DataSource->DataSet->RecNo;

然后在DBGrid1单击事件DBGrid1CellClick(TColumn *Column)
中,判断在单击DBGrid时,是不是你要编辑的行,如果不是就设置成你已经记录下的记录号的那一行就行了。
DBGrid1->DataSource->DataSet->RecNo = t;
DBGrid1->SetFocus();
ntcxh 2005-09-20
  • 打赏
  • 举报
回复
大家帮帮我啊,急啊.

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧