C#工具栏中自定义工具点击后效果改变方法

本文介绍如何在C#中为自定义工具栏工具添加点击后的选中效果,包括设置CheckOnClick属性及通过ItemClicked事件实现单选逻辑。

       在C#窗口程序开发中,经常会在工具栏中添加自定义工具。程序自带的工具在点击后,都有一定的点击效果。但是自定义工具在使用中,点击之后一点效果都没有,让人不知道到底点击了没有,下面主要讲解一种能够使工具栏中工具在点击后图标上加框的方法。

问题描述:

  • 系统自带的工具,点击后,会出现如图中红圈标出的效果(工具图标有蓝框):

  • 而自定义的工具点击后没有任何效果(我点击了最后一个工具,但是根本看不出来):

解决方法:

(1)点击自定义的工具,在其属性设置框中,将CheckOnClick属性设置为True。这样在点击工具后,就会出现和系统自带工具一样的蓝框了。

但如果只是这一步的话,同样会带来问题,如果先点击自定义工具,再点击其他工具后,会出现两工具同时出现的情况。

(2)那就要使在点击其他工具时,把原先工具的Check状态改变。这里,我们更改工具栏(toolstrip)的事件,当工具栏中的工具被点击时,触发ItemClicked事件:

(3)ItemClicked事件表述为,当工具栏中点击的工具不是原先点击的工具时,将原先工具的Check状态设置为UnChecked(这里要对所有工具设置):

        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

            
            if (e.ClickedItem!=toolStripButton2)
            {
                toolStripButton2.CheckState = CheckState.Unchecked;
            }

         }


(4)这样就可以出现跟系统自带工具栏一样的效果了:


总结:

这个方法个人觉得有点繁琐,C#应该自带了应对这种问题的方法,但到现在还没有找到,如果有找到更好的方法,还请大家告诉我。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值