C# winform treeview 节点展开状态的图标设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform treeview 节点展开状态的图标设置相关的知识,希望对你有一定的参考价值。

如何:设置
Windows
窗体
TreeView
控件的图标
Windows
窗体
TreeView
控件可在每个节点旁显示图标。图标紧挨着节点文本的左侧。若要显示这些图标,必须使树视图与
ImageList
控件相关联
设置
TreeView
控件的
ImageList
属性为想要使用的现有
ImageList
控件。
这些属性可在设计器中使用“属性”窗口进行设置,也可在代码中设置。
设置节点的
ImageIndex

SelectedImageIndex
属性。ImageIndex
属性确定正常和展开状态下的节点显示的图像,
SelectedImageIndex
属性确定选定状态下的节点显示的图像。
这些属性可在代码中设置,或在“树节点编辑器”中设置。若要打开“树节点编辑器”,请单击“属性”窗口中
Nodes
属性旁边的
省略号
按钮
()。
ImageList
myImageList
=
new
ImageList();
myImageList.Images.Add(Image.FromFile("Default.gif"));
myImageList.Images.Add(Image.FromFile("SelectedDefault.gif"));
myImageList.Images.Add(Image.FromFile("Root.gif"));
myImageList.Images.Add(Image.FromFile("UnselectedCustomer.gif"));
myImageList.Images.Add(Image.FromFile("SelectedCustomer.gif"));
myImageList.Images.Add(Image.FromFile("UnselectedOrder.gif"));
myImageList.Images.Add(Image.FromFile("SelectedOrder.gif"));
//
Assign
the
ImageList
to
the
TreeView.
myTreeView.ImageList
=
myImageList;
//
Set
the
TreeView
control's
default
image
and
selected
image
indexes.
myTreeView.ImageIndex
=
0;
myTreeView.SelectedImageIndex
=
1;
参考技术A 如果用的是系统里的图标可以点击treeview控件右上角的三角形"套用格式";
如果你想使用一些自定义的图标可以建一个ImageList添加图标
设置TreeView的ImageList为你的ImageList
然后new
TreeNode的时候注意提示,构造有个ImageIndex添你的Image编号
参考技术B public
void
treetool(treeviewitem
item,int
grade)

if
(grade
<
2
&&
item.items.count
>
0)

for
(int
i
=
0;
i
<
item.items.count;
i++)

treeviewitem
nowitem
=
item.items[i]
as
treeviewitem;
nowitem.isexpanded
=
true;
treetool(nowitem,
grade++);


else
if
(grade
>
2
&&
item.items.count>0)

for
(int
i
=
0;
i
<
item.items.count;
i++)

treeviewitem
nowitem
=
item.items[i]
as
treeviewitem;
nowitem.isexpanded
=
false;
treetool(nowitem,
grade++);




winform
不知道
正确性怎么样
大概就这么个意思
用递归的
具体样式什么的
自己改下
参考技术C 建一个ImageList添加图标
设置TreeView的ImageList为你的ImageList
然后new
TreeNode的时候注意提示,构造有个ImageIndex添你的Image编号

winform 中treeview 展开和折叠首层节点时 切换显示图片,类似qq首层节点那样,点击之后箭头图片改变

参考技术A 1、首先需要将节点放置图片,图片大小16x16,
2、按照操作Treeview的节点api编程即可,核心在于将图片放置在节点上追问

我给treeview 添加了一个imagelist ,然后在加载的时候首层和第二层节点(只有两层)都加了图片,现在的问题是首层的向右和向下箭头图片切换不正常,我选的是nodemouseclick 事件,在事件发生时 ,判断节点是否展开来实现单击展开与闭合和图片的切换,单击切换是实现了,但是换图标不行

参考技术B 首先要有ImageList控件与TreeView关联
节点的展开和关闭事件里修改节点的ImageIndex属性追问

代码贴上,再看看
private TreeNode lastSelNode;//设置一个类变量保存最后选中的那个节点 private void tvShow_AfterSelect(object sender, TreeViewEventArgs e) if (lastSelNode != null && lastSelNode != e.Node)// && lastSelNode != tvShow.Nodes[0] lastSelNode.ImageIndex = 0;else if (lastSelNode != null)lastSelNode.ImageIndex = 1;lastSelNode = e.Node;e.Node.Expand();

追答

不用AfterSelect事件
private void tvEmp_AfterExpand(object sender, TreeViewEventArgs e)

e.Node.SelectedImageIndex = e.Node.ImageIndex = 0;


private void tvEmp_AfterCollapse(object sender, TreeViewEventArgs e)

e.Node.SelectedImageIndex = e.Node.ImageIndex = 1;

本回答被提问者采纳

以上是关于C# winform treeview 节点展开状态的图标设置的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 中展开Treeview节点的问题。。。有分

c#、winform、treeview 部分节点加图片

c#的winform TreeView控件中,展开不同的节点,右边显示不同的内容,该怎么做啊,请帮帮我吧,谢谢~

C# winform开发中,如果treeview的节点太多,导致加载很慢,怎么做可以提给效率?

c# winform 里TreeView的使用

winform中,TreeView如何只展开一级节点