返回首页

您好,
心中已经写了下面的代码为一个ComboBox框TextChanged事件,但是当我尝试写的东西,它只是把它写入,反之亦然(例如:键入谷歌时,我写elgoog),我怎么能做出正确
?代码:


            combo.Items.Clear();

            foreach (string a in Addresses)

                if (a.Contains(combo.Text))

                    combo.Items.Add(a);

            combo.DroppedDown = true;

            

谢谢

回答

评论会员:游客 时间:2012/02/06
LanFanNinja:解决方案1是一个很好的建议,但不会解决问题与书面向后的文字,你需要移动文本插入点到行的末尾,使用一些事情像combo.SelectionStart=combo.Text如下图所示。长度;。{C}一些代码,可以帮助你弄清楚选择使用键盘的东西:codeprelang="c#"List<spanclass="code-keyword"int/span>matchingIndexes=spanclass="code-keyword"new/spanList<spanclass="code-keyword"int/span>();spanclass="code-keyword"int/spanindex=spanclass="code-digit"0/span;spanclass="code-keyword"bool/spanselecting=spanclass="code-keyword"false/span;spanclass="code-keyword"private/spanspanclass="code-keyword"void/spancomboBox1_TextChanged(spanclass="code-keyword"object/spansender,EventArgse){spanclass="code-keyword"string/span[]Addresses={spanclass="code-string""/spanspanclass="code-string"http://google.com/"/span,spanclass="code-string""/spanspanclass="code-string"http://www.yahoo.com/"/span}; spanclass="code-keyword"if/span(!selecting){comboBox1.Items.Clear();matchingIndexes.Clear();spanclass="code-keyword"foreach/span(spanclass="code-keyword"string/spanaspanclass="code-keyword"in/spanAddresses){spanclass="code-keyword"if/span(a.Contains(comboBox1.Text)){comboBox1.Items.Add(a);matchingIndexes.Add(comboBox1.Items.IndexOf(a));}}comboBox1.DroppedDown=spanclass="code-keyword"true/span; comboBox1.SelectionStart=comboBox1.Text.Length;}} spanclass="code-keyword"private/spanspanclass="code-keyword"void/spancomboBox1_KeyDown(spanclass="code-keyword"object/spansender,KeyEventArgse){spanclass="code-keyword"if/span(e.KeyCode==Keys.Down){selecting=spanclass="code-keyword"true/span;spanclass="code-keyword"if/span(index>matchingIndexes.Count-spanclass="code-digit"1/span){index=matchingIndexes.Count-spanclass="code-digit"1/span;}spanclass="code-keyword"else/spanspanclass="code-keyword"if/span(index<spanclass="code-digit"0/span){index=spanclass="code-digit"0/span;}comboBox1.SelectedIndex=matchingIndexes[index++];}spanclass="code-keyword"else/spanspanclass="code-keyword"if/span(e.KeyCode==Keys.Up){selecting=spanclass="code-keyword"true/span;spanclass="code-keyword"if/span(index<spanclass="code-digit"0/span){index=spanclass="code-digit"0/span;}spanclass="code-keyword"else/spanspanclass="code-keyword"if/span(index>matchingIndexes.Count-spanclass="code-digit"1/span){index=matchingIndexes.Count-spanclass="code-digit"1/span;}comboBox1.SelectedIndex=matchingIndexes[index--];}} spanclass="code-keyword"private/spanspanclass="code-keyword"void/spancomboBox1_KeyUp(spanclass="code-keyword"object/spansender,KeyEventArgse){spanclass="code-keyword"if/span(e.KeyCode==Keys.Down||e.KeyCode==Keys.Up){selecting=spanclass="code-keyword"false/span;}}/pre/code的
OriginalGriff
评论会员:游客 时间:2012/02/06
而是使用Add方法,而不是使用插入:{体C3}这样,以后的项目总是在前面