1、方法一:在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(); }

2、方法二:结合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;
