怎样实现在ComboBox中键入文本自动根据Items中的内容调整Text的值 private void comboBox1_TextChanged(object sender, System.EventArgs e) int i = this.comboBox1.FindString(this.comboBox1.Text); this.comboBox1.Select(i,1);} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 修正一下private void comboBox1_TextChanged(object sender, System.EventArgs e){ try { this.comboBox1.DroppedDown = true; int i = this.comboBox1.FindString(this.comboBox1.Text); this.comboBox1.Select(i,1); } catch{}} 再更正一次private void comboBox1_TextChanged(object sender, System.EventArgs e){ try { if(this.comboBox1.Text.Trim() == "") return; this.comboBox1.DroppedDown = false; int i = this.comboBox1.FindString(this.comboBox1.Text); this.comboBox1.Select(i,1); this.comboBox1.DroppedDown = true; SendKeys.Send("{DOWN}"); } catch{}} TO: rouser(我是一棵秋天的树) 按你的办法只能匹配键入的首字符,而从键入的第2个字符开始就又重新匹配了 http://www.codeproject.com/combobox/combocompletion.asp?target=combobox%7Cauto 找到实现方法了:private bool _limitToList = true;private bool _inEditMode = false;protected override void OnTextChanged(System.EventArgs e){ if (_inEditMode) { string input = Text; int index = FindString(input); if (index >= 0) { _inEditMode = false; SelectedIndex = index; _inEditMode = true; Select(input.Length, Text.Length); } } base.OnTextChanged(e);}protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e){ _inEditMode = (e.KeyCode != Keys.Back && e.KeyCode != Keys.Delete); base.OnKeyDown(e);} 为什么不用安装数据库服务器就可以操作数据库呢? 怎样才能实现双击一个控件后让另一个和它相同的控件有相同的属性? (Ilist<a>)IList<b> 可以吗? 请教+散分:99乘法表 这样也执行,奇怪阿 用dotmsn开发过MSN机器人,问个有关dotmsn的问题 使用母版页的页面中jquery如何得到控件的name呢 请问一个编程习惯的问题? 怎样确定excel中当前应用行数 强烈谴责bestwishes(新手)到处张贴错误新闻 (C#版) 在不同显示器分辨率下,web页面现实的问题 如何在数据库中创建表。(在线等待)
private void comboBox1_TextChanged(object sender, System.EventArgs e)
{
try
{
this.comboBox1.DroppedDown = true;
int i = this.comboBox1.FindString(this.comboBox1.Text);
this.comboBox1.Select(i,1);
}
catch{}
}
private void comboBox1_TextChanged(object sender, System.EventArgs e)
{
try
{
if(this.comboBox1.Text.Trim() == "")
return;
this.comboBox1.DroppedDown = false;
int i = this.comboBox1.FindString(this.comboBox1.Text);
this.comboBox1.Select(i,1);
this.comboBox1.DroppedDown = true;
SendKeys.Send("{DOWN}");
}
catch{}
}
按你的办法只能匹配键入的首字符,而从键入的第2个字符开始就又重新匹配了
private bool _limitToList = true;
private bool _inEditMode = false;
protected override void OnTextChanged(System.EventArgs e)
{
if (_inEditMode)
{
string input = Text;
int index = FindString(input);
if (index >= 0)
{
_inEditMode = false;
SelectedIndex = index;
_inEditMode = true;
Select(input.Length, Text.Length);
}
} base.OnTextChanged(e);
}
protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e)
{
_inEditMode = (e.KeyCode != Keys.Back && e.KeyCode != Keys.Delete);
base.OnKeyDown(e);
}