treeview中有一个IMAGELIST,请问怎么把tree中+/-号后面的图片去掉

chrisl80 2007-01-12 03:36:03
+-号后面是个自己做的图片,图片后面才是菜单的内容,现在想把第一个节点上+-号后面图片去掉,如果用imageList1.Images.Clear();+-号和菜单内容之间有一图片的距离,怎么把这个距离去掉.而且不能把所有图片都清空,只去掉第一就可以.我的代码大概是
TreeNode tn = new TreeNode();
tn.Text = "1";
tn.ImageIndex = -1;
//tn.SelectedImageIndex = -1;
treeView1.Nodes.Add(tn);

tn = new TreeNode();
tn.Text = "1-1";
//tn.ImageIndex = 0;
//tn.SelectedImageIndex = 0;
treeView1.Nodes[0].Nodes.Add(tn);
...全文
270 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京的雾霾天 2007-01-12
  • 打赏
  • 举报
回复
只是个思路上的吧,楼主可以想想
北京的雾霾天 2007-01-12
  • 打赏
  • 举报
回复
给楼主一个参考:)
先给TreeView.DrawMode设置为OwnerDrawText然后添加如下的事件代码:

private void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
{
Rectangle imgRect = new Rectangle(e.Bounds.Location, new Size(e.Bounds.Height, e.Bounds.Height));
e.Graphics.DrawIcon(Properties.Resources.logo, imgRect);
string str = e.Node.Text;
Size size = TextRenderer.MeasureText(str, this.Font);
Rectangle rect = Rectangle.FromLTRB(imgRect.Right, imgRect.Top, e.Bounds.Right, e.Bounds.Bottom);
e.Graphics.DrawString(str, this.Font, SystemBrushes.Desktop, rect);
}
sdl2005lyx 2007-01-12
  • 打赏
  • 举报
回复
把节点名画到图上去,把真正的名字附加到treenode的Tag上.
chrisl80 2007-01-12
  • 打赏
  • 举报
回复
做了一个空图片放上去,结果+/-号和菜单内容之间还是有个距离,怎么样去掉这个距离呢
diandian82 2007-01-12
  • 打赏
  • 举报
回复
好像只有重画了。
北京的雾霾天 2007-01-12
  • 打赏
  • 举报
回复
呵呵,错字了:
且TreeView提供了自定义画Node的属性及事件.
北京的雾霾天 2007-01-12
  • 打赏
  • 举报
回复
这个问题我觉得应该属性控件使用不方便.
TreeView就是使用ImageList来显示图标的.除非自己画,这也是一个办法.且TreeView提花了自定义画的属性及事件.
chrisl80 2007-01-12
  • 打赏
  • 举报
回复
关键是现在不要那么大的距离
chrisl80 2007-01-12
  • 打赏
  • 举报
回复
已经加过了,还是空那么大距离.
handomze 2007-01-12
  • 打赏
  • 举报
回复
有一个折衷的办法,就是在ImageList中,加入一个白色的图片。呵呵!
chrisl80 2007-01-12
  • 打赏
  • 举报
回复
不用ImageList还有别的方法吗?
北京的雾霾天 2007-01-12
  • 打赏
  • 举报
回复
TreeView设置了ImageList后,无法让其中某个节点不显示图片...

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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