马鹤道士 2022-11-04 02:10 采纳率: 50%
浏览 48
已结题

winform中treeView前面的(+/-)图标能重新设置为下三角和右三角吗?

实现和加减号一样的效果。目前使用图标 Imagelist 更换索引的方式,需要点击两次才能实现效果(估计是因为 点击图片和点击文本是一样的情况,需要点击两次?)
  • 写回答

1条回答 默认 最新

  • 於黾 2022-11-04 02:43
    关注

    那大概是你用错事件了,用Mouse事件,不要用click事件

    void treeView1_MouseDown(object sender,MouseEventArgs e)
    {
        if(e.Button==MouseButtons.Left)
        {
            TreeNode c=treeView1.GetNodeAt(e.X,e.Y);//获取鼠标点击坐标的Node
    
            if(c!=null)//如果不是点在空白处
            {
                if(c.Nodes.Count>0)//如果有子节点
                {
                    if(c.IsExpanded)//如果是展开的状态
                    {
                        c.Toggle();//折叠
                    }
                    else
                    {
                        c.Expand();//展开
                    }
                }
            }
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    马鹤道士 2022-11-04 07:43

    这样确实能折叠。另外有什么函数能区分你点击的是图标还是文字吗?

    回复
    马鹤道士 2022-11-04 07:45

    目前的图标和文字是绑定在一起了,不是和(+/-)号一样区分开的

    回复
    於黾 回复 马鹤道士 2022-11-04 08:47

    没有现成的方法。你鼠标放到图标上,文字下面也变色,说明treeview本来就不区分图标和文字,它是按照node为基本单位来管理的。但是你可以自己写函数,上面的代码不是获取到node了吗,那么你就能拿到node的坐标,通过鼠标坐标和node坐标的差,你可以判断点的区域到底是不是位于图标范围内还是已经超出了

    1
    回复
    展开全部4条评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月4日
  • 创建了问题 11月4日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部