>>>>> 如何自定义 TreeView 中的键盘输入 <<<<<

symansoft 2005-05-23 03:44:52

我想修改TreeView默认的键盘功能,比如希望禁止VK_SPACE,VK_UP,VK_DOWN等键,以及去掉TreeView中默认的Item根据用户键入的第一个字符自动定位等功能,如何修改源码?
谢谢。
...全文
140 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
TVirus 2005-05-24
  • 打赏
  • 举报
回复
procedure TForm1.TreeView1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Abort;
end;

用Abort中断键盘事件处理链,就可以了
symansoft 2005-05-23
  • 打赏
  • 举报
回复

所谓自动根据用户输入值定位于某 Item 上,是指:
假如一树为:

Abc
bc
bb
ca
ab
123
09

则当你键盘敲入‘1’时,树的光标自动切换到 '123'上,这个功能有时很讨厌。如何禁止?
stty 2005-05-23
  • 打赏
  • 举报
回复
你可以通过在KEYPRESS事件中屏蔽键的方法使此功能失效,(如果你想按下回车后检索则回车应该保留,否则你的LOCATE功能将不能实现。)
可以这样做
if (key<>#13) then key:=#0;
stty 2005-05-23
  • 打赏
  • 举报
回复
keydown事件里截获,例如
if ( Key in [Vk_space,VK_UP,VK_DOWN ) then Key := 0;
不知道你说的自动定位是什么意思,你是说item中stateindex属性吗?
我对TREEVIEW的研究不多,帮你顶下吧。

zhptj 2005-05-23
  • 打赏
  • 举报
回复
全部屏蔽
onkeydown事件里
key:=0;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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