关于TreeView的问题!

Eudemon 2003-10-15 05:27:51
请问各位:

我在Treeview 的DblClick中,想得到我当前选中的节点,但是当我点击Treeview中空白的地方,也就是没有选中某一节点,这时取得的节点会是默认选中的那个,我怎么才能实现没选中节点双击返回个空node?

请各位指教,嘿嘿,也不是大家看没看懂。
...全文
31 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cstarter 2003-10-16
  • 打赏
  • 举报
回复
procedure TForm1.TreeView1DblClick(Sender: TObject);
var
p:TPoint;
Node:TTreeNode;
begin
//
p:=TreeView1.ScreenToClient(Mouse.CursorPos);
Node:=TreeView1.GetNodeAt(p.X,p.Y);
if (Node<>nil )then
ShowMessage('You select the Node: '+Node.Text);
end;

procedure TForm1.TreeView1Click(Sender: TObject);
var
MyHitTest : THitTests;
p:TPoint;
begin
p:=TreeView1.ScreenToClient(Mouse.CursorPos);
MyHitTest := TreeView1.GetHitTestInfoAt(p.X,p.Y);
if htNowhere in MyHitTest then
ListBox1.Items.Add('NoWhere');
if htOnItem in MyHitTest then
ListBox1.Items.Add('OnItem');
if htOnButton in MyHitTest then
ListBox1.Items.Add('OnButton');
if htOnIndent in MyHitTest then
ListBox1.Items.Add('OnIndent');

if htOnLabel in MyHitTest then
ListBox1.Items.Add('OnLabel');
if htOnRight in MyHitTest then
ListBox1.Items.Add('OnRight');

end;
这两个事件处理过程不知您需要那个,试试吧
angle097113 2003-10-15
  • 打赏
  • 举报
回复
根据treeview.selected.level
treeview.selected.index
两个属性是可以实现的
crazy_555 2003-10-15
  • 打赏
  • 举报
回复
pNode := TreeView1.GetNodeAt(X, Y)
crazy_555 2003-10-15
  • 打赏
  • 举报
回复
在TreeView1的OnMouseDown事件中填写:
pNode := TreeView1.GetNodeAt(pos.X, pos.Y)
x,y即为该事件里的x,y
Eudemon 2003-10-15
  • 打赏
  • 举报
回复
if TreeView1.GetNodeAt(pos.X, pos.Y) <> nil then ?


好像不行阿。
pankun 2003-10-15
  • 打赏
  • 举报
回复
你用GetCursorPos得到鼠标位置,再算出相对于TreeView的位置.
Eudemon 2003-10-15
  • 打赏
  • 举报
回复
X, Y 从哪来得 ?
facedge 2003-10-15
  • 打赏
  • 举报
回复
if TreeView1.GetNodeAt(X,Y)<>nil then ...

5,385

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧