在向大家详细介绍C# ListBoxEx之前,首先让大家了解下ListBox,然后全面介绍C# ListBoxEx。
在一个点对点文件传输的项目中,我需要显示文件传输的实时信息:传输的文件列表和当前传输的文件,当时我想到了用ListBox,但是但我用了ListBox后,我发现它不能改变控件中文本想的颜色,于是我就想扩展一下ListBox控件------ListBoxEx。
我的目标是给空间加上图标,还要能时时改变控件文本颜色。于是从ListBox派生类
- public class ListBoxEx : ListBox {…}
为了操作方便我为ListBoxEx的每一项设计专门的类ListBoxExItem
- public class ListBoxExItem {…}
为了保持我这个控件与WinForm的标准控件的操作借口一致,我又重新设计了两个集合类:
- public class ListBoxExItemCollection : IList, ICollection, IEnumerator {}
- //这个类相对于标准ListBox中的ObjectCollection,
这个类作为ListBoxEx中的Items属性的类型- public class SelectedListBoxExItemCollection : : IList,
ICollection, IEnumerator{}- //这个类相对于标准ListBox中的SelectedObjectCollection,
这个类作为ListBoxEx中的SelectedItems属性的类型
下面看两个集合类的实现:
ListBoxExItemCollection的实现:为了做到对集合(Items)的操作能够及时反映到C# ListBoxEx中所以,此类只是对ListBox中Items(ObjectCollection类型)作了一层包装,就是把ListBox中Items属性的所有方法的只要是object类型的参数都转换成C# ListBoxExItem,比如:
- public void Remove(ListBoxExItem item)
- {
- this._Items.Remove(item); //_Items为ObjectCollection类型
- }
- public void Insert(int index, ListBoxExItem item)
- {
- this._Items.Insert(index, item);
- }
- public int Add(ListBoxExItem item)
- {
- return this._Items.Add(item);
- }
【编辑推荐】
网站标题:C#ListBoxEx简单描述
网站网址:http://www.shufengxianlan.com/qtweb/news45/371495.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联