-2

我有一个数据网格,其中他们是一个名为 StudentName 的字段......而且我有一个文本框,我必须通过他们的名字找到学生我为此创建函数,但我希望文本框自动建议并附加学生姓名网格中存在的数据不是来自数据库我在做什么............

我在下面的 ilist 中取所有学生姓名是我的代码............

 try
                    {
                        IList<string> ObjAutoCompleteStringCollection = new List<string>();                  
                        for(int i=0;i<dgvStudentDetail.RowCount;i++)
                        {
                             ObjAutoCompleteStringCollection.Add(dgvStudentDetail.Rows[i].Cells["StudentName"].Value.ToString());
                        }
                       txtStudentName.AutoCompleteCustomSource=
                       txtStudentName.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                       txtStudentName.AutoCompleteSource = AutoCompleteSource.CustomSource;
                   }
                   catch (Exception ex)
                   {
                    MessageBox.Show(ex.Message);
                   }
4

1 回答 1

0

您必须使用AutoCompleteStringCollectionas 作为Custom Source您的自动完成源:

try
{
   txtStudentName.AutoCompleteCustomSource = new AutoCompleteStringCollection();                  
   for(int i=0;i<dgvStudentDetail.RowCount;i++){
    txtStudentName.AutoCompleteCustomSource.Add(dgvStudentDetail.Rows[i].Cells["StudentName"].Value.ToString());
   }
   txtStudentName.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
   txtStudentName.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
catch (Exception ex)
{
   MessageBox.Show(ex.Message);
}

注意:您txtStudentName应该拥有Multiline = false(默认情况下),否则AutoCompleting将无法正常工作。

于 2013-10-01T09:25:48.447 回答