【发布时间】:2012-10-05 10:55:23
【问题描述】:
我在尝试为datagridviewtextboxcell 执行autocomplete 时遇到此错误specified cast is not valid。我附上了代码的快照以及stack trace。我在这里错过了什么吗?
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
TextBox prodCode = e.Control as TextBox;
if (dataGridView1.CurrentCell.ColumnIndex == 0)
{
var source = new AutoCompleteStringCollection();
String[] stringArray = newDB.CustomerTbls.Where(s => s.Status == "Active" & s.Type == "Customer").Select(s => s.Name).ToArray<string>();
source.AddRange(stringArray);
if (prodCode != null)
{
prodCode.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
prodCode.AutoCompleteCustomSource = source;
prodCode.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
}
else
prodCode.AutoCompleteCustomSource = null;
}
【问题讨论】:
-
您的问题与stackoverflow.com/q/7225290/122005类似。您是否尝试过将控件实例化 TextBox prodCode = e.Control as TextBox;在 if 条件中,在检查它是否不为空之前?
-
@chridam :代码与您指定的链接中的代码相同。我尝试将控件实例化 TextBox prodCode = e.Control as TextBox;在 if 条件内,但它仍然给出相同的错误。还有其他建议吗?
标签: c# .net winforms datagridview autocomplete