继承 System.Windows.Forms.ComboBox 实现支持自动完成功能的 ComboBox!个人感觉还可以!!!
来源:互联网 发布:盈建科软件下载 编辑:程序博客网 时间:2024/05/16 12:36
/// <summary>
/// ComboBox 的摘要说明。
/// </summary>
public class ComboBox : System.Windows.Forms.ComboBox
{
#region 字段
/// <summary>
/// 表示最近一次的用户交互操作是否是键盘操作。
/// </summary>
private bool isKeyPressed;
/// <summary>
/// 表示是否启用自动完成功能。
/// </summary>
private bool autoComplete;
#endregion
#region 属性
/// <summary>
/// 获取是否启用自动完成功能。
/// </summary>
[Bindable(true),Browsable(true),SRCategory(SR.CatBehavior),SRDescription(SR.ComboBoxAutoCompleteDescr)]
public bool AutoComplete
{
get
{
return autoComplete;
}
set
{
autoComplete = value;
}
}
#endregion
#region 构造函数
/// <summary>
///
/// </summary>
public ComboBox()
{
isKeyPressed = false;
autoComplete = false;
}
#endregion
#region 保护方法
/// <summary>
///
/// </summary>
/// <param name="e"></param>
protected override void OnTextChanged(EventArgs e)
{
bool flag = isKeyPressed;
isKeyPressed = false;
if(DropDownStyle != ComboBoxStyle.DropDown)
{
base.OnTextChanged (e);
return;
}
if(!flag)
{
base.OnTextChanged (e);
return;
}
if(!autoComplete)
{
base.OnTextChanged (e);
return;
}
BeginUpdate();
string newText = Text;
if(newText!="")
{
if(FindStringExact(newText)!=-1)
{
if(DroppedDown)
{
DroppedDown = false;
}
}
else if(FindString(newText)!=-1)
{
DroppedDown = true;
Text = newText;
Select(newText.Length,0);
}
}
else if(DroppedDown)
{
DroppedDown = false;
}
EndUpdate();
base.OnTextChanged (e);
}
/// <summary>
///
/// </summary>
/// <param name="e"></param>
protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
{
isKeyPressed = true;
base.OnKeyPress (e);
}
/// <summary>
///
/// </summary>
/// <param name="e"></param>
protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)
{
isKeyPressed = false;
base.OnMouseDown (e);
}
#endregion
}
- 继承 System.Windows.Forms.ComboBox 实现支持自动完成功能的 ComboBox!个人感觉还可以!!!
- 具有自动完成功能的ComboBox
- C# ComboBox自动完成功能的例子
- 另一个具有自动完成功能的ComboBox
- 自定义具有自动完成功能的ComboBox
- ComboBox自动完成功能的例子
- ComboBox自动完成功能的例子
- C# ComboBox自动完成功能的示例
- C# ComboBox自动完成功能的示例
- comboBox 自动完成搜索功能
- 章鱼哥出品_VB.NET ComboBox、 TextBox 实现自动完成、自动过滤 模糊查询的功能
- 具有自动完成功能的ComboBox(源码、原创)
- ComboBox自动完成功能(Source)
- wxpython comboBox 自动完成提示功能
- 在 System.Windows.Forms.DataGrid中切入使用ComboBox控件
- 自动完成Combobox小结
- 自动完成Combobox小结
- combobox,textbox 控件实现自动提示功能
- [转载]Linux 国际化本地化和中文化
- asp.net实现无刷新DropDownList联动控件
- Redhat AS 3.0上apache2.0.50+tomcat5.0.25+jk2 的安装
- 在 Java 中应用设计模式 - Factory Method
- Hello Blog
- 继承 System.Windows.Forms.ComboBox 实现支持自动完成功能的 ComboBox!个人感觉还可以!!!
- 数值逼近学习笔记
- up新势力!
- vc调试
- Clipboard 操作(转载)
- classpath 问题,错了好多次,记录一下
- tiles框架values属性目录的设置
- 图像操作比较
- Clipboard学习(转载)