我已经将DataGridView正确绑定到我的数据表,但是我正在尝试使自动完成功能对于文本框列之一正常工作。自动完成功能正在运行,但我试图将其限制为datagridview上的仅一列。目前,它要么为每一列都做,要么什么都不做。有任何想法吗?下面的代码。
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;
}
}
}
最佳答案
您的if条件只是检查用户当前是否选择了第三列。
您是否要使所有该列可编辑?还是当前所选行中只有一个单元格?表单上的另一个按钮如何触发编辑?在这种情况下,当编辑变为活动状态时,可以选择任何单元格吗?
您将需要索引到正确的列并将其设置为启用自动完成功能。