[急]TreeView,有二级节点。我如何才能只让二级节点能选择,一级节点不让选择? TreeView,有二级节点。我如何才能只让二级节点能选择,一级节点不让选择? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不能选择嘛,还没有简单的方案;给楼主一个思路,当用户点击一级节点时,自动选择该一级节点的第一个二级子节点,这样也可间接达到, 用户不能选择一级节点的要求;procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);begin if (node.Level = 0) then //一级节点 node.Item[0].Selected := true else begin //二级节点 Edit1.Text := Node.Text; end;end; procedure TForm1.TreeView1Changing(Sender: TObject; Node: TTreeNode; var AllowChange: Boolean);begin AllowChange := Node.Level <> 0;end; 如果只允许二级节点能选择,一级和三级节点都不能选择的话,改成AllowChange := Node.Level = 1; 老妖的方法可行~~~只是有一点,用户单击一级节点时,会感觉TreeView没有反应,必须点击左边的+ 号或者双击才能展开二级节点,且展开之后并没有自动选择二级节点;如果在树没有自动展开的情况下,如果不需要自动选择二级节点,可以采用老妖的方法.如果需要自动选择二级节点,可以采用这个方法,procedure TForm1.tv1Change(Sender: TObject; Node: TTreeNode);beginif (node.Level = 0) and( Node.HasChildren) then //一级节点,加个HasChildren,以免没有子点节时出错begin node.Item[0].Selected := trueend;end; 先谢谢兄弟们的关心与帮助。因为特别着急要用,客户提的,没有办法。老妖的方法可行。TreeView这样可以控制了。但实际上我用的是 dxTreeViewEdit控件。就是一个编辑框,可以下拉,下拉就是TreeView。可此控制无OnChanging事件。但问题解决了,我换了一个控件。用cxPopupEdit,也是一个编辑框,可以下拉,下拉框可以自己选择,我用了一个TreeView控件。谢谢兄弟了。结贴。 关于识别图片中的汉字 : 申请 网络模块斑竹一职 (3) Access数据库,保存后立即读出,为什么读不到刚保存的数据! delphi有没有无符号int64 用ODAC如何取得一个表的字段类型、长度、是否非空 高分求解,如何调用DLL里的MDI子窗体???? 求助delphi指针构造链表 TreeView内部的节点创建以后,我想实现运行时可以用鼠标拖动来更改其中节点的顺序,该怎么办? DBGRID中镶嵌下拉框的问题 使用TDBLookUpComboBox的问题 Delphi des算法 有没IV这个变量? 如何暂时过滤某个消息
begin
if (node.Level = 0) then //一级节点
node.Item[0].Selected := true
else
begin //二级节点
Edit1.Text := Node.Text;
end;
end;
var AllowChange: Boolean);
begin
AllowChange := Node.Level <> 0;
end;
AllowChange := Node.Level = 1;
必须点击左边的+ 号或者双击才能展开二级节点,且展开之后并没有自动选择二级节点;如果在树没有自动展开的情况下,如果不需要自动选择二级节点,可以采用老妖的方法.如果需要自动选择二级节点,可以采用这个方法,procedure TForm1.tv1Change(Sender: TObject; Node: TTreeNode);
begin
if (node.Level = 0) and( Node.HasChildren) then //一级节点,加个HasChildren,以免没有子点节时出错
begin
node.Item[0].Selected := true
end;
end;
可此控制无OnChanging事件。但问题解决了,我换了一个控件。用cxPopupEdit,也是一个编辑框,可以下拉,下拉框可以自己选择,我用了一个TreeView控件。谢谢兄弟了。结贴。