这一节给大家演示一个具有多选功能的下拉列表框,其实就是一个文本框和checkboxlist组合实现的用户控件,换个角度来实现自定义控件。
先来看下效果图吧,我会分几个步骤来具体讲解这个文本框的实现。
1.界面实现
我们先来看下界面效果怎样实现,然后再讲解具体的功能性实现。
先创建一个用户控件,当然是继承UserControl类,这个界面需要用到以下控件来实现
下拉按钮:是一个button控件
文本框:显示选中的内容,
多选列表框: checkboxlist
全选/取消:是两个LABEL控件
右下角的黑三角:是一个LABEL控件,可实现拉长下拉列表框。
窗体:点击下拉按钮,实际是弹出一个窗体,下拉列表框中的控件都在这个窗体中显示
首先看下下拉按钮的实现
[csharp]
/// <summary>
/// 重写BUTTON
/// </summary>
public class ButtonS : Button
{
public ButtonS()
{
//防止重绘控件出现闪烁
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
}
ButtonState state;
//当按钮被按下
protected override void OnMouseDown(MouseEventArgs mevent)
{
state = ButtonState.Pushed;
base.OnMouseDown(mevent);
}
发表回复