AutoCompleteCustomSource,AutoCompleteMode和AutoCompleteSource

时间:2016-05-30 08:50:42

标签: c# windows

我正在使用AutoCompleteCustomSource,AutoCompleteMode和AutoCompleteSource属性来创建一个自动完成输入字符串的TextBox。但它将文本框中输入的前缀与维护源中所有字符串的前缀进行比较。

但我不想比较前缀。我想比较所有字符串的后缀。

以下是我的代码段

    /* Event triggered on text change */
    private void tbSelectedValue_TextChanged(object sender, EventArgs e)
    {
        List<string> drawingList = new List<string>();
        drawingList=ReadDrawingNames(tbSelectedValue.Text);
        if (drawingList!=null && drawingList.Count > 0) {
           this.tbSelectedValue.AutoCompleteCustomSource.AddRange(drawingList.ToArray());
        }       
    }

    /* Function to get suggestions for Auto complete  */
    public List<string> ReadDrawingNames(string tbSelectvalueText)
    {
        System.Data.DataTable dt = new DataTable();
        List<string> drawingFileName = new List<string>();
        try
        {
            dt = PIDDBUtilities.GetSQLData(string.Format("SELECT [DrawingName] FROM [SynchroniseDetails] where [DrawingName] like '%{0}%'",tbSelectvalueText), PIDDBTYPE.REPORTSDB);

            foreach (DataRow row in dt.Rows)
            {
                if (!drawingFileName.Contains(row["DrawingName"].ToString()))
                    drawingFileName.Add(row["DrawingName"].ToString());
            }
            return drawingFileName;
        }
        catch (Exception ex)
        {
            string errormsg = ex.Message;
        }
        return null;
    }

1 个答案:

答案 0 :(得分:0)

AutoCompleteCustomSource 通过将输入的前缀与维护来源中的所有字符串的前缀进行比较,自动完成输入字符串。See msdn for more details。你想要比较所有字符串的后缀是非常不合逻辑的。请进一步分享您希望实现的目标?