左边TreeView,右边多个Tedit,点击TreeView节点,右边用多个TEDIT显示TreeView被点节点信息。
这样修改完TEDIT的内容后可切换TreeView节点,以编辑其它节点信息。若TEDIT中填定内容不合法则在切换节点时返回原出错节点,弹出对话框提示,用户按对话框确定后,“焦点返回出错TEDIT”。
现在在TreeView的OnChanging事件中对各TEDIT内容合法性做检查,若出错则AllowChang:=False,并弹出对话框,并给出错TEDIT设SetFoucs。但是发现最后TEDIT.SetFoucs后光标在TEDIT上停一下后又回到了TreeView的上面,停在出错节点上哪位知道如何解决,多谢!

解决方案 »

  1.   

    给TEDIT设SetFoucs时还会触发TreeView的OnChanging事件,弹对话框也要触发,不好判断,我一般用TreeView的OnClick事件
      

  2.   

    procedure onclick(........)//treeview
    begin
      edit1.text := treeview.selected.text;
    end;procedure onclick(........)//botton
    begin
      if  合法 then
        allowchange := true
      else
        begin
          //message error;
          edit1.setfocus; 
        end;
    end;
      

  3.   

    那请问楼上,那个onclick的allowchange只有在onchanging中才有的啊。
    你那个全局的么?