我想修改TreeView默认的键盘功能,比如希望禁止VK_SPACE,VK_UP,VK_DOWN等键,以及去掉TreeView中默认的Item根据用户键入的第一个字符自动定位等功能,如何修改源码?
    谢谢。

解决方案 »

  1.   

    全部屏蔽
    onkeydown事件里
    key:=0;
      

  2.   

    keydown事件里截获,例如
        if ( Key in [Vk_space,VK_UP,VK_DOWN  )  then  Key := 0;
    不知道你说的自动定位是什么意思,你是说item中stateindex属性吗?
    我对TREEVIEW的研究不多,帮你顶下吧。
      

  3.   

    你可以通过在KEYPRESS事件中屏蔽键的方法使此功能失效,(如果你想按下回车后检索则回车应该保留,否则你的LOCATE功能将不能实现。)
    可以这样做
    if (key<>#13) then key:=#0;
      

  4.   


        所谓自动根据用户输入值定位于某 Item 上,是指:
        假如一树为:       Abc
              bc
              bb
              ca
              ab
           123
           09    则当你键盘敲入‘1’时,树的光标自动切换到 '123'上,这个功能有时很讨厌。如何禁止?
      

  5.   

    procedure TForm1.TreeView1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
        Abort;
    end;用Abort中断键盘事件处理链,就可以了