时间:2021-05-20
前言
C#本身提供了很强大的控件库,但是很多控件库的功能只是一些基本的功能,就比如最简单的按钮,C#提供了最基础的按钮使用方法,但是如果要增加一些功能,比如按钮按下要一个图片,弹起要另一个图片这样的工作。当然,我们可以对相关按钮在点击函数中进行更改其背景图片,但是这对于大量的按钮调用来说十分不方便,代码重用率相当的高,会导致使用上的卡顿,在这种情况下,我们可以将这个功能封装起来,这样每次调用起来就很方便,也节省了代码的重用率。
那么如何将上述的那么一个简单的功能封装起来呢,我们首先考虑到的便是按键的属性,我们可以在相关按键中添加新的属性来完成这一步操作。
首先先建立一个用户类库:
然后再该类库下添加一个新的组件:
在组件中我们需要首先继承Button类
然后需要添加新的属性供新的控件使用,这里我们添加四个属性:1、按钮按下的图片 2、按钮开启时的图片 3、按钮关闭时的图片 4、该按钮是单次点击型还是开光状态型的模式选择。
在该部分,首先需要定义存储默认状态的量,如上图所示,存储各个图片的默认值为null。Description参数为属性的说明注释,Category属性为当前该属性所属的类,下面定义的函数为将用户选择的参数进行返回和获取的一个过程,用户定义的属性名即函数名。
函数体为常见的{get;set;}形式:
该部分将用户选择的参数赋值给之前定义的图片文件,至此为止属性已经简单的添加完毕,如将该文件编译得到的dll文件导入库中进行使用,我们会发现,拖出来的按钮控件下面已经多了上面定义的所有属性。
但是这些属性还并没有用,只是简单的进行了赋值,要让这些属性进行动作,需要在按钮中添加新的事件。这里我们添加了两个事件,一个是鼠标按下的事件,还有一个鼠标弹起的按键:
上面的部分就是简单的一些按钮属性设置,比如将按钮背景变透明之类的。
添加的新的事件中,我们需要对按钮的相应动作进行相应,在按下时获得按下时的图片,在弹起时获得弹起时的图片即可。
这里buttonflag为定义的一个public变量,用户可以在使用Click事件中判断是否开启成功,若没有开启成功可以将该变量置为原来的值,按钮相应的也不会发生变化。
state用来判断该按钮是否是单次点击的按钮,如果是,那弹起时还是原来的图片。有些按键没有按下时的图片,也不予变化。
至此为止,一个新的封装已经制作完毕,将该文件编译为dll并加载到工程中就能看到效果了,下面是测试效果图:
这是一个带按下动画的按钮。
这是一个不带按下动画的按钮。
这是一个单次点击的按钮。
总结
到此这篇关于C#创建自定义控件及添加自定义属性和事件使用的文章就介绍到这了,更多相关C#创建自定义控件及添加自定义属性和事件使用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言:前面几篇讲了自定义控件绘制原理Android自定义控件基本原理详解(一),Android自定义控件之自定义属性(二),Android自定义控件之自定义组合
AndroidViewPagerIndicator详解及实例代码关于自定义View的属性零碎知识自定义View和自定义属性的知识不再此提及,这里着重说的是属性在
前言:前两篇介绍了自定义控件的基础原理Android自定义控件基本原理详解(一)、Android自定义控件之自定义属性(二)。今天重点介绍一下如何通过自定义组合
本文实例讲述了C#自定义事件及用法。分享给大家供大家参考。具体分析如下:事件是C#中一个重要的内容,MSDN上有一个自定义事件的演示示例。我看了半天有点晕,所以
在Android开发中,往往要用到自定义的控件来实现我们的需求或效果。在使用自定义控件时,难免要用到自定义属性,那怎么使用自定义属性呢?在文件res/value