CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  VCL组件使用和开发

含有TreeView的窗体停靠到一个控件上产生TreeView的Deletion事件,怎么处理?

楼主setdefault(山转水也转)2005-09-22 17:42:17 在 C++ Builder / VCL组件使用和开发 提问

/*/  
  Form1上有一个Panel  
  一下是unit1.cpp  
  /*/  
  #include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   "Unit1.h"  
  #include   "Unit2.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
  TForm1   *Form1;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm1::TForm1(TComponent*   Owner)  
      :   TForm(Owner)  
  {  
      TForm2   *Form2   =   new   TForm2(NULL);  
      Form2->Dock(Panel1,Panel1->ClientRect);  
      Form2->Show();  
  }  
   
  /*/  
  Form2上有一个TreeView  
  一下是unit2.cpp  
  /*/  
  #include   <vcl.h>  
  #pragma   hdrstop  
   
  #include   "Unit2.h"  
  //---------------------------------------------------------------------------  
  #pragma   package(smart_init)  
  #pragma   resource   "*.dfm"  
  TForm2   *Form2;  
  //---------------------------------------------------------------------------  
  __fastcall   TForm2::TForm2(TComponent*   Owner)  
      :   TForm(Owner)  
  {  
      TreeView1->Items->Add(NULL,"1----");  
  }  
  //---------------------------------------------------------------------------  
   
  void   __fastcall   TForm2::TreeView1Deletion(TObject   *Sender,   TTreeNode   *Node)  
  {  
      ShowMessage("");//程序启动时总是执行该行  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm2::FormDestroy(TObject   *Sender)  
  {  
      TreeView1->Items->Clear();  
  }  
   
   
   
  TreeView1Deletion总是被执行,在这样的调用方式下如何才能在初始化时不执行TreeView1Deletion?  
  问题点数:150、回复次数:4Top

1 楼ccrun(老妖)(www.ccrun.com)回复于 2005-09-22 18:55:55 得分 140

试试这样:  
   
  __fastcall   TForm2::TForm2(TComponent*   Owner)  
          :   TForm(Owner)  
  {  
          TreeView1->Items->Add(NULL,"1----");  
          TreeView1->Items->Add(NULL,"2----");  
          TreeView1->Items->Add(NULL,"3----");  
          TreeView1->OnDeletion   =   NULL;  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm2::TreeView1Deletion(TObject   *Sender,   TTreeNode   *Node)  
  {  
          ShowMessage("123");//程序启动时总是执行该行  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm2::FormShow(TObject   *Sender)  
  {  
          TreeView1->OnDeletion   =   TreeView1Deletion;  
  }  
  //---------------------------------------------------------------------------  
  void   __fastcall   TForm2::Button1Click(TObject   *Sender)  
  {  
          //   在这里测试一下是否触发OnDeletion事件  
          TreeView1->Items->Delete(TreeView1->Selected);  
  }Top

2 楼setdefault(山转水也转)回复于 2005-09-23 08:44:53 得分 0

谢谢CCRUN,你的方法应该可以解决,能解释一下为什么会触发OnDeletion?  
  我现在是把TreeView做成动态分配的,停靠在Form1上以后再初始化TreeView那样用起来好像比较安全。因为还发现一些难以解释的问题,先初始化TreeView再停靠窗口,那么停靠前建立的节点TreeNode在访问其属性时出现地址错误,比如读取TreeView->Items->Item[0]->Level。停靠完再初始化TreeView就不会出现这样的问题。Top

3 楼bingyihan(冰易寒)回复于 2005-09-23 17:52:52 得分 10

学习中!Top

4 楼setdefault(山转水也转)回复于 2005-09-26 14:02:13 得分 0

现在问题全部解决了。采用的是先停靠Form再初始化TreeView的办法。Top

相关问题

  • 如何实现窗体停靠
  • 求教:怎么使一个窗体停靠到另外一个窗体中去?
  • 请教一个窗体停靠的问题
  • WEB窗体中的TreeView问题.
  • 如何实现mdi子窗体停靠在Mdi主窗体的某一个位置
  • 如何制作像QQ那样具有“停靠”和“隐藏”功能的窗体!
  • 如何实现和QQ一样的窗体停靠方式(主界面)?
  • 请问如何在MDI窗体的左侧加上一个TreeView?
  • web窗体里的TreeView的用法!(UP有分,不够就加)
  • Windows窗体的TreeView的一个节点是TextBox的形式

关键词

  • 执行
  • null
  • treeview
  • tform
  • 停靠
  • deletion
  • ondeletion
  • 初始化
  • fastcall
  • owner

得分解答快速导航

  • 帖主:setdefault
  • ccrun
  • bingyihan

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo