procedure TMainForm.bsSkinTreeView1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var MyHitTest : THitTests; ND:TTreeNode; begin MyHitTest := bsSkinTreeView1.GetHitTestInfoAt(X,Y); ND:=TbsSkinTreeView(Sender).GetNodeAt(x,y); if nd=nil then Exit; if (htOnButton in MyHitTest ) then begin //事件 end; { 判断点击树结点的位置 if htNowhere in MyHitTest then 点击节点外 showmessage('NoWhere'); // ListBox1.Items.Add('NoWhere'); if htOnItem in MyHitTest then 点击节点 showmessage('OnItem'); // ListBox1.Items.Add('OnItem'); if htOnButton in MyHitTest then 点中+ -号 showmessage('OnButton'); // ListBox1.Items.Add('OnButton'); if htOnIndent in MyHitTest then 点击节点内,但未点中+ -号或节点 showmessage('OnIndent'); // ListBox1.Items.Add('OnIndent'); if htOnLabel in MyHitTest then 点击节点 showmessage('OnLabel'); // ListBox1.Items.Add('OnLabel'); if htOnRight in MyHitTest then 点击节点右侧 showmessage('OnRight'); // ListBox1.Items.Add('OnRight'); } end;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
MyHitTest : THitTests;
ND:TTreeNode;
begin
MyHitTest := bsSkinTreeView1.GetHitTestInfoAt(X,Y);
ND:=TbsSkinTreeView(Sender).GetNodeAt(x,y);
if nd=nil then Exit;
if (htOnButton in MyHitTest ) then
begin
//事件
end;
{ 判断点击树结点的位置
if htNowhere in MyHitTest then 点击节点外
showmessage('NoWhere');
// ListBox1.Items.Add('NoWhere');
if htOnItem in MyHitTest then 点击节点
showmessage('OnItem');
// ListBox1.Items.Add('OnItem');
if htOnButton in MyHitTest then 点中+ -号
showmessage('OnButton');
// ListBox1.Items.Add('OnButton');
if htOnIndent in MyHitTest then 点击节点内,但未点中+ -号或节点
showmessage('OnIndent');
// ListBox1.Items.Add('OnIndent');
if htOnLabel in MyHitTest then 点击节点
showmessage('OnLabel');
// ListBox1.Items.Add('OnLabel');
if htOnRight in MyHitTest then 点击节点右侧
showmessage('OnRight');
// ListBox1.Items.Add('OnRight');
}
end;
ONExpanded事件双击TV树中的内容是可以的!但点击+就不行。
郁闷......