TreeNode编程问题(50分)

  • 主题发起人 主题发起人 lights
  • 开始时间 开始时间
L

lights

Unregistered / Unconfirmed
GUEST, unregistred user!
想请教各位前辈一个问题:
能否指定一个TreeNode对象Text的MaxLength。就像TEdit控件一样。
 
估计不可能,TREEVIEW是WINDOWS的COMMCTRL,由系统负责处理。
 
你完全可以在赋值前过滤!
好象是...Changing或change事件(记不清了)
 
CHANGE完再限制用户输入长度不自然吧?
 
全部输入完了再过滤
 
可以的,只要得到编辑时Tedit句柄就好控制了
var
wnd: HWND;
point: TPoint;

// Timer.interval:=1;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
GetCursorPos(point);
wnd := WindowFromPoint(point);
SendMessage(wnd, EM_LIMITTEXT, 5, 0) // 5为你想要控制的最大长度
end;
如果要更准确些,可以判断所获句柄的父窗口是否是Treeview
 
这个问题十分的简单,请见如下的代码。
//uses commctrl
procedure TForm1.TreeView1Editing(Sender: TObject; Node: TTreeNode;
var AllowEdit: Boolean);
var
wnd:HWND;
begin
wnd:=TreeView_GetEditControl(TreeView1.Handle);
SendMessage(wnd,EM_LIMITTEXT,30,0);
end;
 
接受答案了.
 
Use treeview in 1stClass, it's much easier than this.
I guess.
 
后退
顶部