我已经将我的DataGridView绑定正确地绑定到了我的数据表中,但是我试图让自动完成功能为其中一个文本框列正常工作。自动完成正在工作,但我试图将其限制在datagridview上只有一列。目前它要么为每一列都做,要么根本没有。有任何想法吗?下面的代码。在DataGridView Winform中的文本框自动完成
private void dataGridDetail_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridDetail.CurrentCell.ColumnIndex == 2)
{
var source = new AutoCompleteStringCollection();
String[] stringArray = Array.ConvertAll<DataRow, String>(products.Select(), delegate(DataRow row) { return (String)row["code"]; });
source.AddRange(stringArray);
TextBox prodCode = e.Control as TextBox;
if (prodCode != null)
{
prodCode.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
prodCode.AutoCompleteCustomSource = source;
prodCode.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
}
}
是,通过自动完成使整个第三列可编辑。据我了解上面的代码...每当一个单元格正在编辑datagridview触发编辑控件显示。然后我检查确保只有第三列收到自动完成。 – user526549
不,您检查用户是否已经点击第三列数据网格中的单元格。 – kmcc049
好吧解决了它。感谢您指点我正确的方向。我会在今天晚些时候发布我的解决方案。 – user526549