void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox txtbox = e.Control as TextBox;
if (this.dataGridView1.CurrentCell.ColumnIndex == 0)
{
if (txtbox != null)
{
//
}
}
}
我也用AutoCompleteStringCollection编码。
代码正在运作,
在编辑第1列之前,它不允许任何其他列的自动完成。
编辑第1列后,所有列都将与第1列相同。
请帮我解决问题的方法或其他最佳方式,请在此处分享。
答案 0 :(得分:0)
这应该有用。
private bool firstColEdited = false;
/************************************************************/
var source = new AutoCompleteStringCollection();
String[] stringArray = Array.ConvertAll<DataRow, String>(products.Select(), delegate(DataRow row) { return (String)row["code"]; });
source.AddRange(stringArray);
/************************************************************/
void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox txtbox = e.Control as TextBox;
if (this.dataGridView1.CurrentCell.ColumnIndex == 0 || firstColEdited)
{
firstColEdited = true;
txtbox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
txtbox.AutoCompleteCustomSource = source;
txtbox.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
}