最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
设计带图标和自定义颜色的ListBox
时间:2022-07-02 12:05:47 编辑:袖梨 来源:一聚教程网
在一个点对点文件传输的项目中,我需要显示文件传输的实时信息:传输的文件列表和当前传输的文件,当时我想到了用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)的操作能够及时反映到ListBoxEx的控件中所以,此类只是对ListBox中Items(ObjectCollection类型)作了一层包装,就是把ListBox中Items属性的所有方法的只要是object类型的参数都转换成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);
}
由上可知,ListBoxExItemCollection中有一个构造函数来传递ListBox中的Items对象
private ObjectCollection _Items;
我的目标是给空间加上图标,还要能时时改变控件文本颜色。于是从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)的操作能够及时反映到ListBoxEx的控件中所以,此类只是对ListBox中Items(ObjectCollection类型)作了一层包装,就是把ListBox中Items属性的所有方法的只要是object类型的参数都转换成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);
}
由上可知,ListBoxExItemCollection中有一个构造函数来传递ListBox中的Items对象
private ObjectCollection _Items;
相关文章
- 《原神》5.2卡池抽取建议 11-14
- 《原神》5.2版本新怪物介绍 11-14
- 《原神》希诺宁增伤触发方法 11-14
- 《原神》循音觅奇活动入口 11-14
- 《原神》循音觅奇兑换码获取方法 11-14
- 《原神》花羽会活动飞行技巧介绍 11-14