请教关于TREEVIEW的问题

chxr 2001-05-15 03:46:00
小弟在学习TREEVIEW的时候。发现用右键点击ITEM。并没有ACTIVE
于是用以下的方法:
void __fastcall TForm1::TreeView1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{ TTreeNode *Nodetemp;
if(Shift.Contains(ssRight))
{
Nodetemp=dynamic_cast<TTreeNode *>(Sender);
// TreeView1->Selected=Nodetemp;
TreeView1->Selected->MoveTo(Nodetemp, naAdd);

}

}
不过好象还是没用。怎么回事。
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
actinia 2001-05-16
  • 打赏
  • 举报
回复
关注!
MroM 2001-05-16
  • 打赏
  • 举报
回复
Sender是一个TTreeView指针,dynamic_cast的结果是NULL,当然异常了。
这样:
TTreeView *aTreeView = (TTreeView*)Sender);
TTreeNode *nodeTemp = aTreeView->GetNodeAt(X,Y);
...
leejd 2001-05-15
  • 打赏
  • 举报
回复
怎么个激活法,是展开吗?
chxr 2001-05-15
  • 打赏
  • 举报
回复
如果这样:
void __fastcall TForm1::TreeView1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{ TTreeNode *Nodetemp;
if(Shift.Contains(ssRight))
{
Nodetemp=dynamic_cast<TTreeNode *>(Sender);
Nodetemp->Selected=true;
}

}
就发生异常。。
chxr 2001-05-15
  • 打赏
  • 举报
回复
不对。是Nodetemp=dynamic_cast<TTreeNode *>(Sender);
TreeView1->Selected=Nodetemp;

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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