首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

如何知道点的是 +号 还是标题 TreeView

2012-05-12 
怎么知道点的是 +号 还是标题TreeViewIfTreeView1.Selectednilthen beginShowMessage(请先选择节点)Ex

怎么知道点的是 +号 还是标题 TreeView


If TreeView1.Selected = nil then begin
  ShowMessage('请先选择节点');
  Exit;
end else begin
  ShowMessage('已选中节点:'+treeview1.Selected.Text);  
end;


类似上面的样子

怎么做出
If ... then begin
  ShowMessage('你点的是+号’);
  展开当前点的节点
end else IF ... THEN begin
  ShowMessage('你点的是标题:'+treeview1.Selected.Text);  
  不展开当前点的节点 
end;



[解决办法]
我自己研究的哟

procedure TFrmTreeView.TreeView1Change(Sender: TObject; Node: TTreeNode);
//var
// Node: TTreeNode;
begin

if (Node.Text='子节点01') then
begin
showmessage('子节点01');//写入Node节点事件代码
end;
if Node.Text='子节点02' then
begin
showmessage('子节点02');//写入Node节点事件代码
end;
if Node.Text='子节点03' then
begin
showmessage('子节点03');//写入Node节点事件代码
end;
end;
[解决办法]

Delphi(Pascal) code
procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);varClickInfo:THitTests;beginClickInfo:=TreeView1.GetHitTestInfoAt(X,Y);if htOnItem in ClickInfo thenShowMessage('你刚才点了标题')else if htOnButton in ClickInfo thenShowMessage('你刚才点了加号');end;
[解决办法]
看来,我得出手了
TreeView有展开和收缩的事件,定义一个全局变量来控制双击时不让他展开和收缩就达到效果了

Delphi(Pascal) code
  private    Expanding:Boolean;    procedure SetExpanding(var IsExpanding :Boolean);    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.SetExpanding(var IsExpanding :Boolean);var  P: TPoint;begin  P := TreeView1.ScreenToClient(Mouse.CursorPos);  if (htOnLabel in TreeView1.GetHitTestInfoAt(P.X, P.Y)) and (Expanding) then  begin    Expanding := False;    IsExpanding := false;  end;end;procedure TForm1.TreeView1DblClick(Sender: TObject);begin  Expanding := True;end;procedure TForm1.TreeView1Expanding(Sender: TObject; Node: TTreeNode;  var AllowExpansion: Boolean);begin  SetExpanding(AllowExpansion);end;procedure TForm1.TreeView1Collapsing(Sender: TObject; Node: TTreeNode;  var AllowCollapse: Boolean);begin  SetExpanding(AllowCollapse);end; 

热点排行