请教Winform中的treeView单击时图片变动问题

ufo20020427 2013-01-23 02:47:44

public partial class FormMenuConfig : Form
{
public FormMenuConfig()
{
InitializeComponent();
Init();
}

private void Init()
{
ImageList imageList = new ImageList();
imageList.Images.Add(Image.FromFile("Images/folder.gif"));
imageList.Images.Add(Image.FromFile("Images/page.gif"));
treeMenu.ImageList = imageList;

TreeNode nodeRoot = new TreeNode();
nodeRoot.ImageIndex = 0;
nodeRoot.Text = "根节点";

TreeNode nodeDir1 = new TreeNode();
nodeDir1.ImageIndex = 0;
nodeDir1.Text = "目录1";
nodeRoot.Nodes.Add(nodeDir1);

TreeNode nodePage1 = new TreeNode();
nodePage1.ImageIndex = 1;
nodePage1.Text = "页面1";
nodeRoot.Nodes.Add(nodePage1);

//treeMenu是TreeView
treeMenu.Nodes.Add(nodeRoot);
}

}

这里运行后,显示的是 根节点(文件夹)下有一个 目录1(文件夹),及页面1(页面)。
文件夹图标是folder.gif,具体页面图标是page.gif。 到这里一切显示如预期的。
可是单击(选中)nodePage1节点时,发现图标自动变成了文件夹的图标folder.gif,只有选中nodeDir1或者nodeRoot ,nodePage1才会重新变回正确的page.gif
请问怎么回事,谢谢!
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
y112102 2014-03-14
  • 打赏
  • 举报
回复
我的也是 谢谢
adrianEvin 2013-01-23
  • 打赏
  • 举报
回复
ufo20020427 2013-01-23
  • 打赏
  • 举报
回复

        private void Init()
        {
            ImageList imageList = new ImageList();
            imageList.Images.Add(Image.FromFile("Images/folder.gif"));          
            imageList.Images.Add(Image.FromFile("Images/page.gif"));
            treeMenu.ImageList = imageList;

            TreeNode nodeRoot = new TreeNode();
            nodeRoot.ImageIndex = 0;
            nodeRoot.SelectedImageIndex = 0;
            nodeRoot.Text = "根节点";                   

            TreeNode nodeDir1 = new TreeNode();
            nodeDir1.ImageIndex = 0;
            nodeDir1.SelectedImageIndex = 0;
            nodeDir1.Text = "目录1";
            nodeRoot.Nodes.Add(nodeDir1);

            TreeNode nodePage1 = new TreeNode();
            nodePage1.ImageIndex = 1;
            nodePage1.SelectedImageIndex = 1;
            nodePage1.Text = "页面1";           
            nodeRoot.Nodes.Add(nodePage1);           

            //treeMenu是TreeView
            treeMenu.Nodes.Add(nodeRoot);            
        }

解决了,原来还得设SelectedImageIndex
ufo20020427 2013-01-23
  • 打赏
  • 举报
回复

  private void treeMenu_AfterSelect(object sender, TreeViewEventArgs e)
        {
            e.Node.ImageIndex = 0;
        } 
加了,还是不正常。
bdmh 2013-01-23
  • 打赏
  • 举报
回复

        private void treeView2_AfterSelect(object sender, TreeViewEventArgs e)
        {
            e.Node.ImageIndex = 0;
        }

110,539

社区成员

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

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

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