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

来源:互联网 发布:淘宝助理不显示打印机 编辑:程序博客网 时间:2024/05/03 17:50

       在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#应该自带了应对这种问题的方法,但到现在还没有找到,如果有找到更好的方法,还请大家告诉我。

原创粉丝点击