combox是一个功能很强大的控件。它可以使得枚举类型的值给用户提供很好的选择使用。
但是在现实的使用过程中发现,有时候它的功能不能满足我们的要求了。
例如,有时我们需要选择多项时,就发现combox本身是单选类型的。这时候我们就要扩展一下这个控件了
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
namespace ComboBoxEx
{
public class ComboBoxEx:ComboBox
{
ListBox lst=new ListBox();
public ComboBoxEx()
{
lst.SelectionMode=SelectionMode.MultiExtended;
this.DrawMode=DrawMode.OwnerDrawFixed;//只有设置这个属性为OwnerDrawFixed才可能让重画起作用
lst.KeyUp+=new KeyEventHandler(lst_KeyUp);
lst.MouseUp+=new MouseEventHandler(lst_MouseUp);
lst.KeyDown+=new KeyEventHandler(lst_KeyDown);
}
#region Property
[Description("选定项的值"),Category("Data")]
public ListBox.SelectedObjectCollection SelectedItems
{
get
{
return lst.SelectedItems;
}
}
关键的 就是对控件中常用的几个事件的重写
#endregion
#region override
protected override