一个关于DBGrid的问题,困扰我很久了!!!(100分)

B

Bkhswrp

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现在DBGrid中的光标固定下来(即不可通过鼠标或者键盘转移到另外一个记录)
,我想了很多方法了,就是不管用,我认为DBGrid组件设计的并不好,灵活性不够!
 
你的问题不是很清楚,要固定光标,记录要移动吗?
 
就是限制记录移动
 
有点麻烦,
可以设置DBGird的Enabled=false,不过不太好看
剩下的就是屏蔽按键和鼠标了
按键比较简单,在事件里就可以搞定,鼠标只有截取消息了
 
谢谢!对啊,主要是鼠标的消息如何截取了。我通过截取WM_VSCROLL消息完成了部分
我要实现的功能。可是,当鼠标点击其他行的Cell时候也可以实现记录转移,对于这个消息
我不知道怎么做?
 

很简单在 Table 的 BeforeScroll 中处理

procedure TForm1.ADOTable1BeforeScroll(DataSet: TDataSet);
begin
abort;
end;
 
不过最好还是加个判断!!!!!!!!

以下程序 Button1 可以向下移动,但在 Grid 中点击无法移动!!!!

var
bCanNotScroll:Boolean=true;
procedure TForm1.ADOTable1BeforeScroll(DataSet: TDataSet);
begin
if bCanNotScroll then abort;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
bCanNotScroll:=false;
Adotable1.Next;
bCanNotScroll:=true;

end;
 
楼上的朋友:使用Abort还是不能解决我碰到的问题,因为如果当然记录已经被修改,
鼠标点别的记录虽然不发生记录转移,但是原来的记录自动Post了,这不是我需要的。
 
如果你只是想不自动POST记录的话,jsxjd的方法变通一下就行了。
BeforePost
 
谢谢各位,解决了
 
多人接受答案了。
 
顶部