C1FlexGrid:实现像 google 搜索一样的自动完成功能, 对比两种途径

原生的C1FlexGrid无自动完成功能(AutoComplete),但是现实中有很多用户在做数据录入功能时,对自动完成功能非常期待,那么我们可通过如下的2个途径实现自动完成功能。<a href="http://www.grapecity.com.cn/image.ashx?picture=C1FlexGrid_C1Combo.gif"><img title="C1FlexGrid_C1Combo" style="display: inline" alt="C1FlexGrid_C1Combo" src="http://www.grapecity.com.cn/image.ashx?picture=C1FlexGrid_C1Combo.gif" width="398" height="252" /></a>

发布于 2014/04/23 00:00

ComponentOne Enterprise

原生的C1FlexGrid无自动完成功能(AutoComplete),但是现实中有很多用户在做数据录入功能时,对自动完成功能非常期待,那么我们可通过如下的2个途径实现自动完成功能。

 

  • 方法一:在C1FlexGrid的KeyUpEdit事件实现

方法一的核心:DIY思想,通过C1FlexGrid已有的接口,编码实现。预先在C1FlexGrid中显示文本,然后KeyUpEdit事件中,逐个查询预先输入的文本,从而实现AutoComplete功能。

private void _flex_KeyUpEdit(object sender, C1.Win.C1FlexGrid.KeyEditEventArgs e)
        {
            if (e.KeyCode == Keys.Space ||
                e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.Divide ||
                e.KeyCode >= Keys.OemSemicolon && e.KeyCode <= Keys.OemBackslash)
                AutoComplete();
        }

C1FlexGrid_keyUpEdit

源码下载:

  • 方法二:结合C1.Win.C1List.C1Combo控件

我们已知,C1Combo控件是支持AutoComplete功能的,且代码非常简洁,仅仅需要五行代码即可实现AutoComplete功能。故,我们就用拿来主义实现,代码和效果截图如下。
对比方法一,方法二更容易一些,因为我们复用了C1Combo控件已有的功能---复用控件可以极大的提高开发效率。见如下短短的7行代码,即可实现AutoComplete功能:

            c1Combo1.DataSource = dt;  //DataTable
            c1Combo1.DisplayMember = dt.Columns[0].ColumnName;
            c1Combo1.AutoCompletion = true;
            c1Combo1.AutoDropDown = true;
            c1Combo1.ColumnHeaders = false;

            this.c1FlexGrid1.Cols[1].Caption = "C1Combo Source";
            this.c1FlexGrid1.Cols[1].Editor = this.c1Combo1;

C1FlexGrid_C1Combo

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

相关产品
推荐相关案例
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态