组合框和自动完成在C# [英] Combobox and autocomplete in C#

查看:94
本文介绍了组合框和自动完成在C#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有个小问题,在组合框中自动完成选项。一切工作正确的,但我想工作,它指出错误:)

i have small problem with autocomplete option in combobox. Everything is working correct, except that i want to work it diffrent :)

当我在组合框中键入开始,autusuggest工作我喜欢的方式:

When I start typing in combobox, autusuggest working the way i like :

但是,当我第一次打开下拉框,然后开始输入我得到类似的东西:

But when i first open combobox, and then start typing i get something like that:

更重要的是我无法从自动提示组合框挑项目,仅从在此列表中。

What's more i can't pick item from autosuggest combobox, only from this list under.

AutocompleteMode是SuggestAppend

AutocompleteMode is SuggestAppend

我想有自动提示喜欢上了第一张照片,并在如画2的情况下,这首框列表应该得到某种封闭。

I'd like to have autosuggest like on the first picture, and in situations like picture 2, this first combobox list should be closed somehow..

推荐答案

我有同样的问题,解决了这种方式:

I had the same problem and solved it this way:

private void comboBox_DropDown(object sender, EventArgs e)
{
    ComboBox cbo = (ComboBox)sender;
    cbo.PreviewKeyDown += new PreviewKeyDownEventHandler(comboBox_PreviewKeyDown);
}

private void comboBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
    ComboBox cbo = (ComboBox)sender;
    cbo.PreviewKeyDown -= comboBox_PreviewKeyDown;
    if (cbo.DroppedDown) cbo.Focus();
}

一旦在下拉按钮,用户点击 previewKeyDown 事件附加到组合框。当用户开始输入时,将触发新加入的事件。在这种情况下,我们检查,如果组合框 DroppedDown ,如果是,集中了组合框。在组合框焦点下拉 disappeares,仅此而已。

Once the user clicks on the DropDown button PreviewKeyDown event is attached to that ComboBox. When user starts typing, freshly added event is triggered. In that event we check if ComboBox is DroppedDown, if it is, focus that ComboBox. On ComboBox focus DropDown disappeares and that's it.

这篇关于组合框和自动完成在C#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆