如何在treeview的节点前面添加图标? 如题! 本人刚接触C#,有很多基本东西还不了解,望各位高手指教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是winform的话,首先需要为窗体添加ImageList,然后把所有需要显示的图标加载其中。然后用此去初始化treeview的ImageList属性那么添加节点的时候,可以如下:Dim tnNew As TreeNode = yourTreeView.Nodes.Add( "Test" )tnNew.ImageIndex = 0 'Index starts from 1 C#TreeNode tnNew = yourTreeView.Nodes.Add( "Test" );tnNew.ImageIndex = 0;//Index starts from 1 节点我都添加好了,现在只是要在节点前面加图标,Knight94(愚翁) 兄弟可否说的再详细一点啊, 如果是winform的话,首先需要为窗体添加ImageList,然后把所有需要显示的图标加载其中。然后用此去初始化treeview的ImageList属性那么添加节点的时候,可以如下:TreeNode tnNew = yourTreeView.Nodes.Add( "Test" );tnNew.ImageIndex = 0;//Index starts from 1------------------------------------------------------------说的挺详细的了。这是在程序动态添加的。如果你所有节点使用相同的图标,那就可以为 TreeView 选择 ImageList.然后设置 ImageIndex 。如果让 node 被选择时有不同的图标就把 SelectedImageIndex 设置为不同的值。 为整个Tree增加一个Imagelist。然后为每个节点分配ImageIndex。 但是我在属性中不能设置Imagelist,ImageIndex啊! 你添加一个 ImageList 了么?它也是个控件。 从工具箱找到ImageList 拖到你的TreeView上 然后就可以设置了 Knight94(愚翁) 说的很清楚了啊。如果是winform的话,首先需要为窗体添加ImageList,然后把所有需要显示的图标加载其中。然后用此去初始化treeview的ImageList属性那么添加节点的时候,可以如下:TreeNode tnNew = yourTreeView.Nodes.Add( "Test" );tnNew.ImageIndex = 0;//Index starts from 1-----------------------------------------------------------按上面的做不就完了? 静态:创建一个ImageList(工具栏里有个控件),选中它,属性理由一个Images,点击后面的...按钮,向这个控件里加几幅图标,图标的索引值是从0开始的.然后保存.将treeview属性里的ImageList选项设为你刚才添加的ImageList1,再在属性Image中找到你想要的图标动态:创建一个ImageList(工具栏里有个控件),选中它,属性理由一个Images,点击后面的...按钮,向这个控件里加几幅图标,图标的索引值是从0开始的.然后保存.将treeview属性里的ImageList选项设为你刚才添加的ImageList1,如愚翁所说,在初始化树时TreeNode node=yourTreeView.Nodes.Add("");//节点添加node.ImageIndex=0;//0为ImageList1里的图标的索引值 大家说的我都明白,说的也很对,但是我想在一个TREEVIEW里添加不同的图标,在属性里选择只能是添加相同的图标啊,而被选择时,图标是不变的。 也就是说,我添加节点的时候不是用TreeNode node=yourTreeView.Nodes.Add("")这种方式添加的,而是从数据库把数据读出来,赋给一个变量,再根据条件来添加的。 代码?总会有添加node的时候吧?可能你的方法俺不清楚。我的是类似下面这样的。private void CreateTree(){dv = dtTree.DefaultView;dv.Sort = "TypeParentID ASC"; DataRowView[] arrDRV = dv.FindRows( 0 );//Get root data infoif( arrDRV.Length == 0 ) { return;}TreeNode tnNew = null;foreach( DataRowView drv in arrDRV ){ tnNew = TreeView.Nodes.Add( drv.Row["TypeName"].ToString() ); tnNew.Tag = drv.Row["TypeID"].ToString();//Save "TypeID" in node's tag tnNew.SelectedImageIndex = 0;//这里设置图标 tnNew.ImageIndex = 1; CreateTreeNode( ref tnNew );}this.ExpandAll();}private void CreateTreeNode( ref TreeNode tnParent ){DataRowView[] arrDRV = dv.FindRows( tnParent.Tag );//Get children data infoif( arrDRV.Length == 0 ){ return;}TreeNode tnNew = null;foreach( DataRowView drv in arrDRV ){ tnNew = tnParent.Nodes.Add( drv.Row["TypeName"].ToString() ); tnNew.Tag = drv.Row["TypeID"].ToString();//Save "TypeID" in node's tag tnNew.SelectedImageIndex = 2;//这里设置图标 tnNew.ImageIndex = 3; //如果是多层的话,就打开此句 //CreateTreeNode( ref tnNew );}} wdy9927(wdy9927)兄弟,谢谢你的回复,我会给你结分的,看来大家还是没有明白我的想法,呵呵。。我再给大家说一遍,就是我在一个TREEVIEW里添加了两棵树,我想把这两棵树的图标设置为不同的图标。就是这样的。我该怎么做? 先添加一个图像图标,然后图像图标和树关联,再设树的ImageIndex 即可. 一个treeview两棵树?那倒没有试过.你是怎么实现的?总有判断这个节点属于哪个树吧?属于第一课就加一种图标,属于另外一棵就加载另外一种图标,没试过啊,不知道可行不 C# 根据具体名称获取或设置输入法 【版务帖】2008年12月C#版务帖 如何用C#建立一个绘图板 在线等求解决crystalReportViewer这个控件问题,急急急!顶者有分 socket问题 help oracle.dataaccess.dll引用 在线等Socket.Receive异常问题 关于重写DataGrid的DataGridTextBoxColumn类问题 打开窗口问题,急~~ 关于ComboBox控件显示的问题 在C#中如何BCD码转换为字符串? 用update怎么更新不了数据库
然后用此去初始化treeview的ImageList属性那么添加节点的时候,可以如下:
Dim tnNew As TreeNode = yourTreeView.Nodes.Add( "Test" )
tnNew.ImageIndex = 0 'Index starts from 1
tnNew.ImageIndex = 0;//Index starts from 1
Knight94(愚翁) 兄弟可否说的再详细一点啊,
然后用此去初始化treeview的ImageList属性那么添加节点的时候,可以如下:
TreeNode tnNew = yourTreeView.Nodes.Add( "Test" );
tnNew.ImageIndex = 0;//Index starts from 1
------------------------------------------------------------
说的挺详细的了。这是在程序动态添加的。
如果你所有节点使用相同的图标,那就可以为 TreeView 选择 ImageList.
然后设置 ImageIndex 。如果让 node 被选择时有不同的图标就把 SelectedImageIndex 设置为不同的值。
你添加一个 ImageList 了么?
它也是个控件。
然后用此去初始化treeview的ImageList属性那么添加节点的时候,可以如下:
TreeNode tnNew = yourTreeView.Nodes.Add( "Test" );
tnNew.ImageIndex = 0;//Index starts from 1
-----------------------------------------------------------
按上面的做不就完了?
创建一个ImageList(工具栏里有个控件),选中它,属性理由一个Images,点击后面的...按钮,向这个控件里加几幅图标,图标的索引值是从0开始的.然后保存.将treeview属性里的ImageList选项设为你刚才添加的ImageList1,再在属性Image中找到你想要的图标
动态:
创建一个ImageList(工具栏里有个控件),选中它,属性理由一个Images,点击后面的...按钮,向这个控件里加几幅图标,图标的索引值是从0开始的.然后保存.将treeview属性里的ImageList选项设为你刚才添加的ImageList1,如愚翁所说,在初始化树时TreeNode node=yourTreeView.Nodes.Add("");//节点添加
node.ImageIndex=0;//0为ImageList1里的图标的索引值
总会有添加node的时候吧?
可能你的方法俺不清楚。
我的是类似下面这样的。private void CreateTree()
{dv = dtTree.DefaultView;
dv.Sort = "TypeParentID ASC"; DataRowView[] arrDRV = dv.FindRows( 0 );//Get root data info
if( arrDRV.Length == 0 )
{
return;
}TreeNode tnNew = null;foreach( DataRowView drv in arrDRV )
{ tnNew = TreeView.Nodes.Add( drv.Row["TypeName"].ToString() );
tnNew.Tag = drv.Row["TypeID"].ToString();//Save "TypeID" in node's tag
tnNew.SelectedImageIndex = 0;//这里设置图标
tnNew.ImageIndex = 1; CreateTreeNode( ref tnNew );
}this.ExpandAll();
}
private void CreateTreeNode( ref TreeNode tnParent )
{DataRowView[] arrDRV = dv.FindRows( tnParent.Tag );//Get children data infoif( arrDRV.Length == 0 )
{
return;
}TreeNode tnNew = null;foreach( DataRowView drv in arrDRV )
{
tnNew = tnParent.Nodes.Add( drv.Row["TypeName"].ToString() );
tnNew.Tag = drv.Row["TypeID"].ToString();//Save "TypeID" in node's tag tnNew.SelectedImageIndex = 2;//这里设置图标
tnNew.ImageIndex = 3; //如果是多层的话,就打开此句
//CreateTreeNode( ref tnNew );
}
}
看来大家还是没有明白我的想法,呵呵。。
我再给大家说一遍,就是我在一个TREEVIEW里添加了两棵树,我想把这两棵树的图标设置为不同的图标。就是这样的。我该怎么做?