创建一个带有CheckBox的TreeView

转载 2007年09月16日 14:54:00
void __fastcall TForm1::FormCreate(TObject *Sender)
{
SetWindowLong(TreeView1->Handle,GWL_STYLE,
GetWindowLong(TreeView1->Handle,GWL_STYLE) | TVS_CHECKBOXES);

}
//判断一个节点是否处于Checked状态
bool GetNodeChecked(TTreeNode *ANode)
{
TVITEM tvItem;
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = ANode->ItemId;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
TreeView_GetItem(ANode->TreeView->Handle, %26amp;tvItem);
return ((BOOL)(tvItem.state >> 12) -1);
}
//设置一个节点为Checked状态或者Unchecked状态,由参数IsSetToChecked来确定
void SetNodeChecked(TTreeNode *ANode,bool IsSetToChecked)
{
TVITEM tvItem;
tvItem.mask = TVIF_HANDLE | TVIF_STATE;
tvItem.hItem = ANode->ItemId;
tvItem.stateMask = TVIS_STATEIMAGEMASK;
tvItem.state = INDEXTOSTATEIMAGEMASK(IsSetToChecked?2:1);
TreeView_SetItem(ANode->TreeView->Handle, %26amp;tvItem);
}
void SetChildChecked(TTreeNode *ANode,bool yn)
{ // 把它的子孙都置成一样
int count=ANode->Count;
SetNodeChecked(ANode,yn);
if (count!=0)
for (int i=0;i SetChildChecked(ANode->Item,yn);
}
// TTreeNode *ClickNode; // 保存点中的节点
// bool NodeChecked; // 保存点中的节点checked
void __fastcall TForm1::TreeView1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
ClickNode=TreeView1->GetNodeAt(X,Y);
if (ClickNode!=NULL) // 保存原节点的Checked值
NodeChecked=GetNodeChecked(ClickNode);
}
void __fastcall TForm1::TreeView1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (ClickNode!=NULL)
if (GetNodeChecked(ClickNode)!=NodeChecked)
{ // 把它的子孙都置成一样
NodeChecked=!NodeChecked; // 更新它
SetChildChecked(ClickNode,NodeChecked);
}
}
 

一步步学习WPF纯后台实现带checkbox的Treeview

如果在百度或者google里搜索 带checkbox的treeview,几乎能够搜索到无数的利用在treeview中利用template实现的方法,不是说这种实现方式不好,但是对于一个习惯于在后台代码...
  • ashurta
  • ashurta
  • 2014年03月12日 14:32
  • 1572

C# treeview控件部分节点添加checkbox

转自:http://www.cnblogs.com/xiaolifeidao/p/3178569.html 一、先初始化treeview this.treeView...
  • ainixiaozhuzi
  • ainixiaozhuzi
  • 2014年03月10日 23:14
  • 2083

bootstrap-Treeview实现级联勾选

bootstrap-treeview插件默认不支持级联勾选的,想要实现那就要自己动手了
  • jiang_2992
  • jiang_2992
  • 2017年03月14日 14:00
  • 7559

[转]winform TreeView节点中的CheckBox 禁用实例

摘自:http://www.111cn.net/net/net/40899.htm 分享一篇关于asp.net winform TreeView节点中的CheckBox 禁用实例,有需要的同...
  • windxxf
  • windxxf
  • 2013年09月26日 11:14
  • 3371

TreeView的CheckBoxs的第三种状态,怎么点击node前的“+”的时候图标不变

目的:实现Treeview Checkbox的三种状态,分别是:选中、没有选中、部分选中。 效果如下图: 之前有人写了一部分实现Treeview Checkbox第三种状态的代码,...
  • candyvoice
  • candyvoice
  • 2016年06月29日 16:15
  • 917

C#TreeView复选框的选择

树结构中的节点共有两层(父节点是分类名称子节点是属于该类的项的名称)都是从数据库中读出而且是在读出的过程中将具体的数据项名称进行分类的。要想实现:treeview的AfterCheck事件中的: ...
  • PressTab
  • PressTab
  • 2015年11月12日 12:30
  • 841

C#中TreeView选中父节点同时选中所有的子节点

TreeView 通常和CheckBoxs一起使用,显示并选择一些条目,特别是在等级分割的状态下,例如 当我选择一个父节点,希望该父节点下所有的子节点都被选中,取消一个节点,希望他所有的父节点都取...
  • gz_go
  • gz_go
  • 2015年08月30日 22:00
  • 6145

简单的easyui应用,主要涉及checkbox

学习测试     var json = [{ "type":"单选题", "title":"申请复核或者提出申诉、再申诉的时效期间为()日。", "rightAnswe...
  • football98
  • football98
  • 2016年09月29日 09:28
  • 148

ListView中带有CheckBox时,解决CheckBox重复选择问题的一个不错方案

首先要说明的是,我的ListView自己带有点击事件OnItemClickListener,比如点击其中一项时跳转到另一个页面。而checkBox只是为了选中这一项以待批量处理。因此点击item时并不...
  • chenrenxiang
  • chenrenxiang
  • 2015年09月11日 12:56
  • 1686

C# Treeview控件绘制

using System; using System.Drawing; using System.Windows.Forms; using Windows.Resource; namespace ...
  • zuoyefeng1990
  • zuoyefeng1990
  • 2017年04月05日 09:49
  • 791
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建一个带有CheckBox的TreeView
举报原因:
原因补充:

(最多只允许输入30个字)