DBGrid的两个问题... 一、默认在DBGrid里左右键和上下键的功能是一样的,按了会上下移动记录,现在我想把左右键在DBGrid里屏闭掉,应该怎么做?二、如何移动DBGrid的垂直滚动条不会移动记录? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在onKeyPress 事件中屏蔽掉就可.... 呵呵,在onkeypress里是没法子屏蔽掉的,你只有在dbgrid的实现unit里找到它处理滚动条的事件,然后屏蔽掉该处理函数。或者你为了不影响其他的dbgrid你可以继承dbgrid写一个ocx出来,在新的ocx里你要做的事情就是陈载该滚动条处理函数(在里面你可以处理你想要做的事情) dbgrid的实现unit在哪个目录下? 那我具体要改DBGrid的哪个事件? 因该是可以在onkeydown里屏蔽掉的。代码只要把输入的键值清除就可以了,procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);beginif (key=mb_right) or (key=mb_left) then key:=nil; end;这样应是可以行得通的哦 第1个问题,楼上说的很对。至于第2个问题:不太好办,DBGrid本来就是把游标停在但前记录上。改起来可能比较麻烦。建议你能不能在OnEnter和OnExit中添加事件,记录开始位置,失去焦点之后再自动回复原样。要是这样的话,可以用书签很方便的实现。 楼上:如果这样的话,会不会比较占系统资源,因为工程里会有很多的这种DBGrid,都用标签跑来跑去的话,困难比较麻烦吧。 对第一个问题我可能讲得不太明白,我的意思是想把DBGrid的左右键解放出来响应其他的动作,比如聚焦到其他控件,不是在DBGrid里把左右键屏闭掉,只是不响应记录的移动罢了。 请问各位,如何在dbgrid中增加一行空白行以便输入数据呢? 那其实也是一样的在keydown事件中,if (key=mb_right) or (key=mb_left) then {这里填写你要做的动作} 谁知道哪里有免费的皮肤控件下载 各位大哥大姐给个例子delphi下现实多语言 能否在不用数据组件的情况下,在程序中嵌入SQL语句? 一个奇怪的现象 怎么将两个图片变成一个图片 关于STRING和CHAR之间转换的问题! 关于TABLE的排序 如何设置这个条件 如何把字符转换在 ASCII 码! dll调用出错!!!!!!! BDE连SQL Server,现要在一个Table或Query中编辑一个超长文本数据,有两三千字,我用了Text类型,但是不行,保存几个字的字据都会很慢, 移植数据库出错,求助。
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=mb_right) or (key=mb_left) then key:=nil;
end;
这样应是可以行得通的哦
至于第2个问题:不太好办,DBGrid本来就是把游标停在但前记录上。改起来可能比较麻烦。
建议你能不能在OnEnter和OnExit中添加事件,记录开始位置,失去焦点之后再自动回复原样。
要是这样的话,可以用书签很方便的实现。
在keydown事件中,
if (key=mb_right) or (key=mb_left) then
{这里填写你要做的动作}