使用C#

时间:2017-12-21 15:50:20

标签: c# winforms datagridview autocomplete

我有一个从数据集中填充的dataGridView:

  dataGridView1.DataSource = aSH_ORDER_DBDataSet.ASH_PROD_ORDERS;

向datagridview添加新条目时,是否可以根据该列中其他单元格的内容自动完成或建议单元格?

我搜索过这个,但我发现的一切都是文本框,对我来说没有意义。

1 个答案:

答案 0 :(得分:0)

好的,我想通了。

这部分来自其他地方并由我编辑以供我具体使用:

此代码从您正在编辑的当前列中获取数据,并根据该列建议自动填充答案。

    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
            TextBox autoText = e.Control as TextBox;
            if (autoText != null)
            {
                autoText.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                autoText.AutoCompleteSource = AutoCompleteSource.CustomSource;
                AutoCompleteStringCollection DataCollection = new AutoCompleteStringCollection();
                addItems(DataCollection);
                autoText.AutoCompleteCustomSource = DataCollection;
            }
    }

    public void addItems(AutoCompleteStringCollection col)
    {
        var selectedColumn = dataGridView1.CurrentCell.ColumnIndex;

        List<string> headerList = new List<string>();
        foreach (DataRow row in aSH_ORDER_DBDataSet.ASH_PROD_ORDERS.Rows)
        {
            headerList.Add(row[selectedColumn].ToString());
        }

        List<string> cleanHeaderList = headerList.Distinct().ToList();
        foreach (var item in cleanHeaderList)
        {
            col.Add(item);
        }
    }